<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.lugdunon.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.lugdunon.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lugdunon</id>
		<title>LugdunonWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lugdunon.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lugdunon"/>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Special:Contributions/Lugdunon"/>
		<updated>2026-07-02T07:54:52Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21.2</generator>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.8</id>
		<title>Release 0.8.8</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.8"/>
				<updated>2019-07-07T15:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.8'''''   ''Last Updated: 07/07/2019''     Mods altered in this update:     Server mods altered in this update:     /etc files altered in this update:     ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.8'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 07/07/2019''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|0.8.8]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2019-07-07T15:14:02Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.9'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 07/07/2019''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2019-07-07T15:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.8|0.8.8 (07/07/2019)]]&lt;br /&gt;
* [[Release_0.8.7|0.8.7 (28/06/2018)]]&lt;br /&gt;
* [[Release_0.8.6.1|0.8.6.1 (22/12/2017)]]&lt;br /&gt;
* [[Release_0.8.6|0.8.6 (16/12/2017)]]&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.9 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2018-09-23T08:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Dungeon Revamp&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.8)&lt;br /&gt;
|Rework the procedural dungeon system to provide a richer, deeper, and more challenging dungeon experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.8)&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.7&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Automated Resource Gathering&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.5&lt;br /&gt;
|Add support for automated resource gathering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ARC Visualization tool&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.5&lt;br /&gt;
|Add support for in-game visualization of arc power / matter / information.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.7</id>
		<title>Release 0.8.7</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.7"/>
				<updated>2018-07-07T08:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.7'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''28/06/2018''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*deities.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*names.json&lt;br /&gt;
*npcs.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*quests.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*storyArcs.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/LYCEUM/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/LYCEUM/terrain.dat&lt;br /&gt;
*instanceTemplates/MANOR/instance.json&lt;br /&gt;
*instanceTemplates/MANOR/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/MANOR/terrain.dat&lt;br /&gt;
*instanceTemplates/STARTER_TILE/instance.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/npcCache.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/terrain.dat&lt;br /&gt;
*instanceTemplates/STARTER_TILE/waypointCache.json&lt;br /&gt;
*instanceTemplates/TAVERN/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TAVERN/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/waypointCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/waypointCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/0.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/waypointCache.json&lt;br /&gt;
*quests/hubs/lyceum.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*Entering the game while in an instance other than the overworld will throw off the map pin locations in the new map view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Client 0.8.6.1 -&amp;gt; 0.8.7&lt;br /&gt;
*Server 0.8.6.1 -&amp;gt; 0.8.7.&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.4 -&amp;gt; 0.1.5.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.16 -&amp;gt; 0.0.17.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.9 -&amp;gt; 0.0.10.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.9 -&amp;gt; 0.0.10.&lt;br /&gt;
*Fixed palette regions for the bear sprite.&lt;br /&gt;
*Fixed a couple of minor issues with net.lugdunon.command.core.console.gm.ImageToTerrainCommand.&lt;br /&gt;
*Fixed a spelling error in the text returned from net.lugdunon.command.core.edit.EditTerrainCommand.getDescription().&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.core.play.DamagePlaceableCommand not reporting the proper damage amount to the CORE.METRIC.PLACEABLE.ITEM.DAMAGED metric.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.core.vendor.SellItemToVendorCommand possibly triggering in a game state that doesn't support inventoryUpdated().&lt;br /&gt;
*Fixed a concurrency issue when loading the net.lugdunon.state.character.NpcCache.&lt;br /&gt;
*Fixed an issue with loading the lastPlayed property in net.lugdunon.state.character.PlayerCharacter.&lt;br /&gt;
*Fixed an issue with loading the createdOn property in net.lugdunon.state.character.PlayerCharacter.&lt;br /&gt;
*Fixed an issue with non-stackable items not being handled correctly in net.lugdunon.state.item.arc.handler.matter.ContainerMatterArcHandler.matterRequested(int conduit, MatterRequest request).&lt;br /&gt;
*Fixed an issue with non-stackable items not being handled correctly in net.lugdunon.state.item.arc.handler.matter.LootSiphonMatterArcHandler.matterRequested(int conduit, MatterRequest request).&lt;br /&gt;
*Fixed an issue with incorrect handling of stack size in net.lugdunon.state.quest.condition.abandon.ItemDebit.getItemForRemoval(int i, int b, int curCount, List&amp;lt;ItemForRemoval&amp;gt; ifr, ItemInstance ii).&lt;br /&gt;
*Fixed an syntax error in net.lugdunon.state.quest.condition.completion.reward.FactionReward.renderReward(el).&lt;br /&gt;
*Fixed an issue with the item tooltip not displaying in the net.lugdunon.state.quest.condition.completion.reward.ItemReward's edit UI.&lt;br /&gt;
*Fixed net.lugdunon.state.sprite.SpriteLayerImage.main()'s tinting utility.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.Settlement.getCenterPoint() not returning the correct location.&lt;br /&gt;
*Fixed an issue with the item tooltip not displaying in the net.lugdunon.state.quest.condition.completion.ItemDebit's edit UI.&lt;br /&gt;
*Added icons for each of the spell schools.&lt;br /&gt;
*Added a cooking sound effect.&lt;br /&gt;
*Added snow bear palette preset.&lt;br /&gt;
*Added black bear palette preset.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.WORLD_MAP_DIR to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.worldMapUpdated(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.InMemoryAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.InMemoryAssetManager.worldMapUpdated(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_TERRAIN to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_BIOME to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_RELIEF to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_POLITICS to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added world map support to the net.lugdunon.asset.AssetServer.&lt;br /&gt;
*net.lugdunon.command.core.character.PlayerCharacterManagementCommand now uses its own random seed for randomizing appearance.&lt;br /&gt;
*Added net.lugdunon.command.core.character.creation.InvokeCharacterCreationExtensionCommand to the code base. This will eventually be used for modding the character creation system.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports a relief map layer.&lt;br /&gt;
*net.lugdunon.command.core.inventory.AssignItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED if item assigned is auto-equipped onto the character.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED &amp;amp; CORE.METRIC.ITEM.UNEQUIPPED when an item is transferred to or from an equipment slot.&lt;br /&gt;
*net.lugdunon.command.core.inventory.RemoveInventoryItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED &amp;amp; CORE.METRIC.ITEM.UNEQUIPPED when an item is removed from an equipment slot.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceableStateChangeCommand now include the item's instance id when calling the CORE.METRIC.PLACEABLE.ITEM.ALTERED metric.&lt;br /&gt;
*net.lugdunon.command.core.player.ActionPerformedCommand now triggers the CORE.METRIC.ITEM.USED metric.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerReviveCommand now takes into account whether or not a character is playing dead.&lt;br /&gt;
*net.lugdunon.command.core.player.QuestCompletedCommand now returns a false to the client if the quest in question didn't complete successfully.&lt;br /&gt;
*net.lugdunon.command.core.player.QuestUpdatedCommand's client-side logic moved to game.player.questing.updateQuest().&lt;br /&gt;
*net.lugdunon.command.core.ConnectToServerCommand now transmits the overworld instance's size upon connect.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand.getCommandCompletionThreshold() now returns Game.INFINITE_COMPLETE_THRESHOLD.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now instantiates the game.mapview property with an instance of net.lugdunon.ui.map.Map.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now properly clears out and re-registers the player's minimap and mapview quest progress listeners.&lt;br /&gt;
*net.lugdunon.math.Point now properly supports the ToBinary API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.ex.WorldIdSetException to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setCurrency(String currency) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getCurrency() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setRecipes(Recipes recipes) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getRecipes() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setAdvancements(Advancements advancements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getAdvancements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setQuestDefinitions(QuestDefinitions questDefinitions) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getQuestDefinitions() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.behavior.core.PathBehavior now supports multiple destinations, where one is chosen at random (specified using the destinations parameter).&lt;br /&gt;
*Refactored net.lugdunon.state.character.behavior.core.PathBehavior to logically separate path handling code, to make it more legible with the multiple destinations support.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.core.PlayDeadBehavior to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.creation.ICharacterCreationExtension to the code base.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.DefaultProceduralNonPlayerCharacter to the server-side code base.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeVendor(String vendorId, String vendorDefId, int gender, String name, int orientation, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeDialogue(String dialogueId, String dialogueDefId, int gender, String name, int orientation, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Added error handling to net.lugdunon.state.character.procedural.ProceduralNpcDefinitions.fromJSONObject(JSONObject o).&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArc to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArcCharacterCreationExtension to the code base.&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArcs to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isPlayingDead() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.playDead() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.CharacterSerializer writes out story arc info for player characters.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacters will continue to update() even if playing dead.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) can handle causes of JSONObjectSerializable now.&lt;br /&gt;
*Added net.lugdunon.state.character.NpcDefinitions.hasNpcDef(String npcId) to the server-side API.&lt;br /&gt;
*Added static method net.lugdunon.state.character.NpcDefinitions.save() to the server-side API.&lt;br /&gt;
*A net.lugdunon.state.character.PlayerCharacter will default to the overworld instance on instantiation.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.hasStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.getStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.setStoryArc(String storyArc) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) can handle causes of JSONObjectSerializable now.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getFatherNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setFatherNamePattern(String fatherNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getElderNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setElderNamePattern(String elderNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getMonkNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setMonkNamePattern(String monkNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getAcolyteNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setAcolyteNamePattern(String acolyteNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseFather(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseElder(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseMonk(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseAcolyte(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseName(String namePattern, String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.action.update.canSpawnNPC(String npcId) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.EQInformationComparisonArcHandler.conditionSatisfiedByInputs() now returns a false if only one of the inputs is null.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.EQInformationComparisonArcHandler.conditionSatisfiedByInputs() now uses compare(a,b) == 0 instead of a.equals(b) and will throw a net.lugdunon.state.item.arc.handler.information.ex.UncomparableException if a comparison fails.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.InformationComparisonArcHandler.compare(Object a, Object b) will now 'upgrade' Integer and Float objects to Long and Double objects before comparison.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterCondenserArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterFilterArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterSplitterArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.matter.MatterResponse(MatterRequest request, PlaceableItemInstance respondingItem, int sourceSlotType, int sourceSlotIndex, int stackSizeResponse) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.matter.MatterResponse(PlaceableItemInstance respondingItem, int sourceSlotType, int sourceSlotIndex, int stackSizeResponse) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.matter.MatterResponse(MatterRequest request, PlaceableItemInstance respondingItem, Item itemResponse, int stackSizeResponse) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.matter.MatterResponse(PlaceableItemInstance respondingItem, Item itemResponse, int stackSizeResponse) from the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.CraftingStationArcHandler.matterRequested(int conduit, MatterRequest request) now relies on the Recipe.debit() method to process the consumption of recipe materials.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.HarvesterArcHandler now implements IMatterConsumerArcHandler. This means that a Harvester item can now receive items from other producers.&lt;br /&gt;
*net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONObject drop, DroppedLoot droppedLoot) now accounts for a the placer of a placed item's loot drop modifiers.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.getPiiPlacerActor() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.presence.ActionPresenceInstance will not fully initialize in a stateless environment.&lt;br /&gt;
*Added support for custom / proc gen (stored in a placeable's user defined data) instance trigger definitions.&lt;br /&gt;
*A net.lugdunon.state.item.Item's currency will no longer be initialized in a stateless environment.&lt;br /&gt;
*A net.lugdunon.state.item.Item's actionPresence will no longer be initialized in a stateless environment.&lt;br /&gt;
*net.lugdunon.state.item.Item.toJSONObject() now serializes the items phasingStrategy if it exists.&lt;br /&gt;
*Added net.lugdunon.state.item.ItemDefinitionExistsException to the server-side code base.&lt;br /&gt;
*Added static net.lugdunon.state.item.Item.toString(String itemId, int stackSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.duplicateItem(String sourceItemDef, String newItemDefId, String iconId, String name, String description) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.duplicateItemWithSave(String sourceItemDef, String newItemDefId, String iconId, String name, String description) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.Item.fromJSONArray(JSONArray a) uses setItem(Item i) instead of direct cache.put() calls.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllNPCSpawners() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) to the server-side API.&lt;br /&gt;
*The metricData object in net.lugdunon.state.metric.item.ItemBrokenMetric.handleMetric(JSONObject store, Object metricData) is now a string containing the itemId of the referenced item.&lt;br /&gt;
*The damage amount specified in the metricData object in net.lugdunon.state.metric.item.ItemDamageMetric.handleMetric(JSONObject store, Object metricData) will now be interpreted as its absolute value.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemDamagedMetric.getName() returns &amp;quot;Item Damage&amp;quot; now instead of &amp;quot;Items Damaged&amp;quot;.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemEquippedMetric to the code base.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemUnequippedMetric to the code base.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemUsedMetric to the code base.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.handleMetric(JSONObject store, Object metricData) now informs listeners in all cases of a visited settlement.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.getName() returns &amp;quot;Settlements Visited&amp;quot; now instead of &amp;quot;Settlement Visited&amp;quot;.&lt;br /&gt;
*Added net.lugdunon.state.metric.settlement.SettlementVisitedMetric.getSectionHeight() to the client-side API.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.renderMetricData(el,data) is now implemented.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.listProceduralQuestIds() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getProceduralQuest(String questId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.chain.ChainedQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.chain.QuestChain to the server-side code base.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.abandon.ItemDebit's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.abandon.PlaceableRemoval's edit UI, the requirements drop down will be disabled if no requirements of type &amp;quot;net.lugdunon.state.quest.progress.PlaceItem&amp;quot; are used for this quest.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.AdvancementReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.AdvancementReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.CurrencyReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.CurrencyReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ExperienceReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ExperienceReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.FactionReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.FactionReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.HonorificReward to the code base.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.reward.ItemReward's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ItemReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ItemReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.TitleReward to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ClientSideNotification.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ClientSideNotification.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ICompletionCondition.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ICompletionCondition.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Refactored how net.lugdunon.state.quest.condition.completion.ItemDebit goes about enumerating its items for removal.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ItemDebit.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ItemDebit.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.ItemDebit's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.PlaceableRemoval.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.PlaceableRemoval.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.PlaceableRemoval's edit UI, the requirements drop down will be disabled if no requirements of type &amp;quot;net.lugdunon.state.quest.progress.PlaceItem&amp;quot; are used for this quest.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.SendMail.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.SendMail.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.SendMail's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.runtime.IRuntimePointOfInterest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.runtime.PlaceableItemInstancePointOfInterest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.PointOfInterest to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.BaseProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.CollectExistingResource to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.CraftExistingItem to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.DamageExistingPlaceable to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.DefaultProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ExistingNPCProximity to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.KillExistingNPC to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.PresetItemDelivery to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ProceduralQuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.SimpleItemDelivery to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalNamed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalReleased to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalTrapped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemAltered to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemDamaged to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemEquipped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemUnequipped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemUsed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ModifierApplyOrDispel to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ModifierGainOrLose to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCHurtOrHealed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.SettlementVisited to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.SpellCast to the code base.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.CraftItem to net.lugdunon.state.quest.progress.ItemCrafted.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.PlaceItem to net.lugdunon.state.quest.progress.ItemPlaced.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.KillNPC to net.lugdunon.state.quest.progress.NPCKilled.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.getProgressTextVariables() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.hasPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.addPointOfInterest (PointOfInterest pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.getPointOfInterestId(String suffix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.hasPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.addPointOfInterest (PointOfInterest pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.getPointOfInterestId(String suffix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.getProgressTextVariables() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.incrementPrevCount() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.decrementPrevCountBy() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.incrementPrevCountBy(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.decrementPrevCountBy(int i) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.quest.progress.CountableBasedProgress.setPrevCount(int prevCount) can no longer take the previous count below 0.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.filterOn() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.showEmpty() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.showSlider() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableNPCBasedProgress.init(QuestProgress progress) to the server-side API.&lt;br /&gt;
*Refactored the logic in net.lugdunon.state.quest.progress.CountableNPCBasedProgress to be more sane.&lt;br /&gt;
*net.lugdunon.state.quest.progress.NPCProximity can now define a chance to succeed, retry interval, and the text that displays to the client if the chance check fails.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setConditionProps(JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setChance(double chance) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setFailText(String failText) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setRetryInterval(long retryInterval) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.getEditorData() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.renderUI(parent,requirement) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.trigger.PlaceableItemTrigger to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHook to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.getRequirementConditionPointsOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addRequirementCondition(String id, String type, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeRequirementCondition(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addCompletionCondition(ICompletionCondition completion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeCompletionCondition(ICompletionCondition completion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addAbandonCondition(IAbandonCondition abandon) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeAbandonCondition(IAbandonCondition abandon) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.getStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.setStoryArc(String storyArc) to the server-side API.&lt;br /&gt;
*Added support for story arc assignment to net.lugdunon.state.quest.Quest.&lt;br /&gt;
*Added error handling to net.lugdunon.state.quest.QuestData.abandonQuest(String questId).&lt;br /&gt;
*net.lugdunon.state.quest.QuestData.abandonQuest(String questId) now supports the handling of completion failure.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.alertListener(listener,questId,action) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.updateQuest(questId,res) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.renderTooltip(data) to the client-side API.&lt;br /&gt;
*net.lugdunon.state.quest.QuestData.addQuestProgressListener(qpl) will now call all listener's questUpdated() handler.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.getProceduralQuest(String questId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.getQuestHub(String hubId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.addQuestWithSave(JSONObject quest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHook to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestProgerss.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.quest.QuestProgerss now supports points of interest, which can be defined during procedural generation, requirement conditions, or at runtime.&lt;br /&gt;
*Added net.lugdunon.state.recipe.Recipe.debit(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.recipe.Recipe.getLevel() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.recipe.Recipes can now be instantiated in a stateless environment.&lt;br /&gt;
*Added static net.lugdunon.state.State.filter(String text, Map&amp;lt;String,String&amp;gt; replacements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.postInit() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.initWorldMapLayers() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getStoryArcs() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.hasStoryArcs() to the server-side API.&lt;br /&gt;
*Renamed net.lugdunon.state.World.getQuestDefintions() to net.lugdunon.state.World.getQuestDefinitions().&lt;br /&gt;
*net.lugdunon.state.World now loads the vendor cache after the item worth calculations have processed.&lt;br /&gt;
*net.lugdunon.util.FastMath's random functions can now be used in a stateless environment.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName)  to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FileFilter filter) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FileFilter filter, boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FilenameFilter filter)  to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FilenameFilter filter, boolean absolute) to the server-side API.&lt;br /&gt;
*net.lugdunon.util.FileUtils.copyFile(File sourceFile, File destFile) now supports the deep copying of directories.&lt;br /&gt;
*Added net.lugdunon.util.TextVariable to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.QuestPostProcessor to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, int[] loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, String state, int[] loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, int[] loc, JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, String state, int[] loc, JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.process(JSONArray items) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.matches(String placeableItemDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.setUserDefinedData(JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.performStallAssignment (JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, JSONArray citizens, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.LivestockStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.RepairStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ResearchStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.MarketPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.MarketPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.RapidTransitPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.RapidTransitPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.SmallHomePlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.BrigandCampSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.FarmSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.TownSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.TradesmanSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator refactored to take advantage of the new procedural quest generation API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator.generateInstanceTemplate(JSONObject lyceumUDD, SpellSchool spellSchool, Deity deity, String settlementId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.BrigandCampSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.BrigandCampSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getTooltipWidth() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.renderAdditionalTooltipInformation() to the client-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.Settlement.headingFromPlayer() refactored to use the net.lugdunon.util.Math.headingFrom(destination,origin) helper function.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.renderAdditionalTooltipInformation() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getTooltipWidth() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getTooltipHeight() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.renderTooltip() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addQuestHook(QuestHook questHook) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getQuestHook(int type, String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listQuestHooks() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addCitizen(String citizen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listCitizens() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.SettlementBiome.init(Terrain terrain, PlaceableItemCache placeableItemCache) now uses the net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) method to handle its placeable definitions.&lt;br /&gt;
*net.lugdunon.world.instance.Instance.init(String terrainFile, Tileset tileset, Object seed) now uses the net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) method to handle its placeable definitions.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.event.IElevationChangeListener to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.terrain.event.ITerrainChangeListener to the server-side code base.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.TERRAIN_IMAGE_TYPE_MAX_VALUE increased to 2 from 1.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.addTerrainChangeListener(ITerrainChangeListener tcl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.removeTerrainChangeListener(ITerrainChangeListener tcl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.informTerrainChangeListeners(Set&amp;lt;Integer&amp;gt; chunksUpdated) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.addElevationChangeListener(IElevationChangeListener ecl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.removeElevationChangeListener(IElevationChangeListener ecl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.informElevationChangeListeners(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getLayerImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getElevationImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getReliefMapImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getBiomeImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getLayerImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getElevationImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getReliefMapImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getBiomeImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setElevationData(int index, byte elevation) to the server-side API.&lt;br /&gt;
*Added new world property: &amp;quot;minimap.show.ruins&amp;quot;. If set to true, all ruin instances will appear on minimap.&lt;br /&gt;
*Added new world property: &amp;quot;minimap.show.caverns&amp;quot;. If set to true, all cavern instances will appear on minimap.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) no longer calls the overworld instance's init() directly.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) now calls State.instance().getWorld().postInit() after a successful state intialization.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) now calls State.instance().loadAccounts() after a successful state intialization instead of relying on the State instance for that.&lt;br /&gt;
*Added net.lugdunon.character.Character.getPinLocation(pinLoc) to the client-side API.&lt;br /&gt;
*net.lugdunon.character.NonPlayerCharacter.setQuestState(qsi,qs) will now add/remove NPC to/from map view.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.hasStoryArc() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.getStoryArc() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.titleOrHonorificUpdated() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.input.keybind.MapviewToggleKeybinding to the client-side code base. (Defaults to '[').&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_CRAFTABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_EQUIPPABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_USEABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.map.Map to the client-side code base.&lt;br /&gt;
*Removed net.lugdunon.ui.minimap.Minimap.getPinLo(pin) from the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.getPinLocation(pin) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questAccepted(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questAbandoned(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questCompleted(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questUpdated(questId) to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.constructProvinceText(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPlacesOfInterestTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPlacesToAvoidTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getOpposingFactionTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTavernTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPopulationLevel(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getDeitiesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getExportsFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getServicesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTradesPrelimFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTradesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getConflictLevelFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getConflictLevelCautionFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getFactionFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getOpposingFactionFor(province) is now a static function.&lt;br /&gt;
*Added net.lugdunon.ui.quest.progress.QuestProgressDialog.questUpdated(questId) to the client-side API.&lt;br /&gt;
*Refactored net.lugdunon.ui.quest.progress.QuestProgressDialog.setSelectedQuest(el,quest)'s handling of success/acceptance/detail text.&lt;br /&gt;
*Refactored how net.lugdunon.ui.Window lays out its content.&lt;br /&gt;
*Refactored net.lugdunon.util.Math.distanceFromPlayerLocation(destination) to work a little better.&lt;br /&gt;
*net.lugdunon.util.Math.distanceSquared(p0,p1,max) now accepts a max argument (for wrapping the coordinate plane).&lt;br /&gt;
*net.lugdunon.util.Math.distance(p0,p1,max) now accepts a max argument (for wrapping the coordinate plane).&lt;br /&gt;
*Added net.lugdunon.util.Math.headingFrom(source,destination) to the client-side API.&lt;br /&gt;
*Namespace.registerCustomMetaTags() is now a little more sane.&lt;br /&gt;
*Added Array.containsAll(a) to the client-side API.&lt;br /&gt;
*Array.contains(o) now supports an array of matches.&lt;br /&gt;
*Added Number.headingToString() to the client-side API.&lt;br /&gt;
*Added Game.mapView to the client-side API.&lt;br /&gt;
*Added CORE.BEHAVIOR.PLAY.DEAD behavior.&lt;br /&gt;
*Added CORE.PLAY.DEAD behavior state.&lt;br /&gt;
*Added net.lugdunon.command.core.character.creation.InvokeCharacterCreationExtensionCommand.&lt;br /&gt;
*Increased the base cost of Mistletoe from 7500 to 20000.&lt;br /&gt;
*Increased the base cost of Horn of Elsbeth's Pumpkin Ale from 150 to 180.&lt;br /&gt;
*Set the base cost of a Horn of Marisa's Loping Lager to 180.&lt;br /&gt;
*Deadly NightShade now has a chance to drop a Black Pigment when harvested with a Scythe. &lt;br /&gt;
*Rich Culture's name and description now properly use 'Rich'.&lt;br /&gt;
*Added an NPC cooking prop tool.&lt;br /&gt;
*Added a weak claw NPC attack.&lt;br /&gt;
*Added a strong slash NPC attack.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemUsedMetric.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemEquippedMetric.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemUnequippedMetric.&lt;br /&gt;
*Added a PREFIX_BARMAID name group.&lt;br /&gt;
*Added and removed some names from the SUFFIX_BRIGAND name group.&lt;br /&gt;
*Added, removed, and moved some other names.&lt;br /&gt;
*Added a black bear NPC.&lt;br /&gt;
*Added a snow bear NPC.&lt;br /&gt;
*Brown bear baseHealth decreased to 100 from 150.&lt;br /&gt;
*Brown bear awardExperience decreased to 30 from 20.&lt;br /&gt;
*Coal can now be crafted by smelting Wooden Logs.&lt;br /&gt;
*Horn Mugs no longer require Bronze Bars to craft.&lt;br /&gt;
*Added etc/storyArcs.json.&lt;br /&gt;
*Added etc/quests.&lt;br /&gt;
*Added etc/quests/hubs/.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation) now uses the Terrain.setElevationData() API.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now informs the CORE.METRIC.SPELL.MODIFIER.EXPIRED metric instead of the CORE.METRIC.SPELL.MODIFIER.LOST.&lt;br /&gt;
*Black Bear now have a chance to spawn in Meadow biomes.&lt;br /&gt;
*Black Bear now have a chance to spawn in Forest biomes.&lt;br /&gt;
*Black Bear now have a chance to spawn in Piedmont biomes.&lt;br /&gt;
*Brown Bear now have a chance to spawn in Steppe biomes.&lt;br /&gt;
*Snow Bear now have a chance to spawn in Steppe biomes.&lt;br /&gt;
*Snow Bear now have a chance to spawn in Alpine biomes.&lt;br /&gt;
*Lyceum settlements are now quest hubs.&lt;br /&gt;
*Added 5 procedurally generated opening quest chains for Lyceums.&lt;br /&gt;
*Fixed armor stand instances in town barracks instances.&lt;br /&gt;
*Fixed some chair orientations in town barracks instances.&lt;br /&gt;
*Added a basement to town barracks instances.&lt;br /&gt;
*Greatly expanded the interior of lyceum instances.&lt;br /&gt;
*Greatly expanded the interior of town manor house instances.&lt;br /&gt;
*Greatly expanded the interior of town tavern instances.&lt;br /&gt;
*Began to work on a tiled region instance generator.&lt;br /&gt;
*Added CORE.CHEF.USE.STOVE behavior state.&lt;br /&gt;
*Added CORE.CHEF.PATH.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.FACE.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.SEARCH.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.PATH.STOVE behavior state.&lt;br /&gt;
*Added CORE.CHEF.FACE.STOVE behavior state.&lt;br /&gt;
*Added delivery quest template item.&lt;br /&gt;
*Added fire shrine placeable item.&lt;br /&gt;
*Added water shring placeable item.&lt;br /&gt;
*Added NPCs for tavern and lyceum interior.&lt;br /&gt;
*Added procedural quest template: &amp;quot;collect.existing.resource.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;damage.existing.placeable.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;kill.existing.npc.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;npc.proximity.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;craft.existing.item.template&amp;quot;.&lt;br /&gt;
*Added tavern barmaid vendor.&lt;br /&gt;
*Information location holder item added to tinkering vendor.&lt;br /&gt;
*Planter / harvester item added to tinkering vendor.&lt;br /&gt;
*Added spell vendors for each spell school.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItems(JSONObject instanceConfig, Terrain terrain, PlaceableItemCache placeableItemCache) to provide a more random and even distribution of placeable items.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getRecipes() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setRecipes(Recipes recipes) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getAdvancements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setAdvancements(Advancements advancements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getQuestDefinitions() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setQuestDefinitions(QuestDefinitions questDefinitions) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getCurrency() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setCurrency(String currency) to the server-side API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.7</id>
		<title>Release 0.8.7</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.7"/>
				<updated>2018-07-07T08:37:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.7'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''28/06/2018''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*deities.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*names.json&lt;br /&gt;
*npcs.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*quests.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*storyArcs.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/LYCEUM/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/LYCEUM/terrain.dat&lt;br /&gt;
*instanceTemplates/MANOR/instance.json&lt;br /&gt;
*instanceTemplates/MANOR/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/MANOR/terrain.dat&lt;br /&gt;
*instanceTemplates/STARTER_TILE/instance.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/npcCache.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/STARTER_TILE/terrain.dat&lt;br /&gt;
*instanceTemplates/STARTER_TILE/waypointCache.json&lt;br /&gt;
*instanceTemplates/TAVERN/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TAVERN/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1/waypointCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/terrain.dat&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/2/waypointCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/0.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/tiles/1.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/instance.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/npcCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/TILED_DUNGEON/waypointCache.json&lt;br /&gt;
*quests/hubs/lyceum.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*Entering the game while in an instance other than the overworld will throw off the map pin locations in the new map view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Client 0.8.6.1 -&amp;gt; 0.8.7&lt;br /&gt;
*Server 0.8.6.1 -&amp;gt; 0.8.7.&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.4 -&amp;gt; 0.1.5.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.16 -&amp;gt; 0.0.17.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.4 -&amp;gt; 0.0.5.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.9 -&amp;gt; 0.0.10.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.9 -&amp;gt; 0.0.10.&lt;br /&gt;
*Fixed palette regions for the bear sprite.&lt;br /&gt;
*Fixed a couple of minor issues with net.lugdunon.command.core.console.gm.ImageToTerrainCommand.&lt;br /&gt;
*Fixed a spelling error in the text returned from net.lugdunon.command.core.edit.EditTerrainCommand.getDescription().&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.core.play.DamagePlaceableCommand not reporting the proper damage amount to the CORE.METRIC.PLACEABLE.ITEM.DAMAGED metric.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.core.vendor.SellItemToVendorCommand possibly triggering in a game state that doesn't support inventoryUpdated().&lt;br /&gt;
*Fixed a concurrency issue when loading the net.lugdunon.state.character.NpcCache.&lt;br /&gt;
*Fixed an issue with loading the lastPlayed property in net.lugdunon.state.character.PlayerCharacter.&lt;br /&gt;
*Fixed an issue with loading the createdOn property in net.lugdunon.state.character.PlayerCharacter.&lt;br /&gt;
*Fixed an issue with non-stackable items not being handled correctly in net.lugdunon.state.item.arc.handler.matter.ContainerMatterArcHandler.matterRequested(int conduit, MatterRequest request).&lt;br /&gt;
*Fixed an issue with non-stackable items not being handled correctly in net.lugdunon.state.item.arc.handler.matter.LootSiphonMatterArcHandler.matterRequested(int conduit, MatterRequest request).&lt;br /&gt;
*Fixed an issue with incorrect handling of stack size in net.lugdunon.state.quest.condition.abandon.ItemDebit.getItemForRemoval(int i, int b, int curCount, List&amp;lt;ItemForRemoval&amp;gt; ifr, ItemInstance ii).&lt;br /&gt;
*Fixed an syntax error in net.lugdunon.state.quest.condition.completion.reward.FactionReward.renderReward(el).&lt;br /&gt;
*Fixed an issue with the item tooltip not displaying in the net.lugdunon.state.quest.condition.completion.reward.ItemReward's edit UI.&lt;br /&gt;
*Fixed net.lugdunon.state.sprite.SpriteLayerImage.main()'s tinting utility.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.Settlement.getCenterPoint() not returning the correct location.&lt;br /&gt;
*Fixed an issue with the item tooltip not displaying in the net.lugdunon.state.quest.condition.completion.ItemDebit's edit UI.&lt;br /&gt;
*Added icons for each of the spell schools.&lt;br /&gt;
*Added a cooking sound effect.&lt;br /&gt;
*Added snow bear palette preset.&lt;br /&gt;
*Added black bear palette preset.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.WORLD_MAP_DIR to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.FileSystemAssetManager.worldMapUpdated(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.InMemoryAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.InMemoryAssetManager.worldMapUpdated(String layerId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_TERRAIN to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_BIOME to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_RELIEF to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.WORLD_MAP_LAYER_POLITICS to the server-side API.&lt;br /&gt;
*Added net.lugdunon.asset.manager.IAssetManager.getWorldMapLayer(String layerId) to the server-side API.&lt;br /&gt;
*Added world map support to the net.lugdunon.asset.AssetServer.&lt;br /&gt;
*net.lugdunon.command.core.character.PlayerCharacterManagementCommand now uses its own random seed for randomizing appearance.&lt;br /&gt;
*Added net.lugdunon.command.core.character.creation.InvokeCharacterCreationExtensionCommand to the code base. This will eventually be used for modding the character creation system.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports a relief map layer.&lt;br /&gt;
*net.lugdunon.command.core.inventory.AssignItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED if item assigned is auto-equipped onto the character.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED &amp;amp; CORE.METRIC.ITEM.UNEQUIPPED when an item is transferred to or from an equipment slot.&lt;br /&gt;
*net.lugdunon.command.core.inventory.RemoveInventoryItemCommand now triggers the CORE.METRIC.ITEM.EQUIPPED &amp;amp; CORE.METRIC.ITEM.UNEQUIPPED when an item is removed from an equipment slot.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceableStateChangeCommand now include the item's instance id when calling the CORE.METRIC.PLACEABLE.ITEM.ALTERED metric.&lt;br /&gt;
*net.lugdunon.command.core.player.ActionPerformedCommand now triggers the CORE.METRIC.ITEM.USED metric.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerReviveCommand now takes into account whether or not a character is playing dead.&lt;br /&gt;
*net.lugdunon.command.core.player.QuestCompletedCommand now returns a false to the client if the quest in question didn't complete successfully.&lt;br /&gt;
*net.lugdunon.command.core.player.QuestUpdatedCommand's client-side logic moved to game.player.questing.updateQuest().&lt;br /&gt;
*net.lugdunon.command.core.ConnectToServerCommand now transmits the overworld instance's size upon connect.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand.getCommandCompletionThreshold() now returns Game.INFINITE_COMPLETE_THRESHOLD.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now instantiates the game.mapview property with an instance of net.lugdunon.ui.map.Map.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now properly clears out and re-registers the player's minimap and mapview quest progress listeners.&lt;br /&gt;
*net.lugdunon.math.Point now properly supports the ToBinary API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.ex.WorldIdSetException to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setCurrency(String currency) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getCurrency() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setRecipes(Recipes recipes) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getRecipes() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setAdvancements(Advancements advancements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getAdvancements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setQuestDefinitions(QuestDefinitions questDefinitions) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getQuestDefinitions() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.behavior.core.PathBehavior now supports multiple destinations, where one is chosen at random (specified using the destinations parameter).&lt;br /&gt;
*Refactored net.lugdunon.state.character.behavior.core.PathBehavior to logically separate path handling code, to make it more legible with the multiple destinations support.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.core.PlayDeadBehavior to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.creation.ICharacterCreationExtension to the code base.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.DefaultProceduralNonPlayerCharacter to the server-side code base.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeVendor(String vendorId, String vendorDefId, int gender, String name, int orientation, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeDialogue(String dialogueId, String dialogueDefId, int gender, String name, int orientation, Point location, String settlementId) from the server-side API.&lt;br /&gt;
*Added error handling to net.lugdunon.state.character.procedural.ProceduralNpcDefinitions.fromJSONObject(JSONObject o).&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArc to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArcCharacterCreationExtension to the code base.&lt;br /&gt;
*Added net.lugdunon.state.character.storyarc.StoryArcs to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isPlayingDead() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.playDead() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.CharacterSerializer writes out story arc info for player characters.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacters will continue to update() even if playing dead.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) can handle causes of JSONObjectSerializable now.&lt;br /&gt;
*Added net.lugdunon.state.character.NpcDefinitions.hasNpcDef(String npcId) to the server-side API.&lt;br /&gt;
*Added static method net.lugdunon.state.character.NpcDefinitions.save() to the server-side API.&lt;br /&gt;
*A net.lugdunon.state.character.PlayerCharacter will default to the overworld instance on instantiation.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.hasStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.getStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.setStoryArc(String storyArc) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) can handle causes of JSONObjectSerializable now.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getFatherNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setFatherNamePattern(String fatherNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getElderNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setElderNamePattern(String elderNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getMonkNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setMonkNamePattern(String monkNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.getAcolyteNamePattern() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.setAcolyteNamePattern(String acolyteNamePattern) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseFather(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseElder(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseMonk(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseAcolyte(String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.deity.Deity.preParseName(String namePattern, String nameTemplate) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.action.update.canSpawnNPC(String npcId) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.EQInformationComparisonArcHandler.conditionSatisfiedByInputs() now returns a false if only one of the inputs is null.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.EQInformationComparisonArcHandler.conditionSatisfiedByInputs() now uses compare(a,b) == 0 instead of a.equals(b) and will throw a net.lugdunon.state.item.arc.handler.information.ex.UncomparableException if a comparison fails.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.information.comparison.InformationComparisonArcHandler.compare(Object a, Object b) will now 'upgrade' Integer and Float objects to Long and Double objects before comparison.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterCondenserArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterFilterArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*A net.lugdunon.state.item.arc.handler.matter.MatterSplitterArcHandler will now advance sequentially through each of its inputs (one input per arc pulse) when querying for available matter.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.matter.MatterResponse(MatterRequest request, PlaceableItemInstance respondingItem, int sourceSlotType, int sourceSlotIndex, int stackSizeResponse) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.matter.MatterResponse(PlaceableItemInstance respondingItem, int sourceSlotType, int sourceSlotIndex, int stackSizeResponse) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.matter.MatterResponse(MatterRequest request, PlaceableItemInstance respondingItem, Item itemResponse, int stackSizeResponse) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.matter.MatterResponse(PlaceableItemInstance respondingItem, Item itemResponse, int stackSizeResponse) from the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.CraftingStationArcHandler.matterRequested(int conduit, MatterRequest request) now relies on the Recipe.debit() method to process the consumption of recipe materials.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.HarvesterArcHandler now implements IMatterConsumerArcHandler. This means that a Harvester item can now receive items from other producers.&lt;br /&gt;
*net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONObject drop, DroppedLoot droppedLoot) now accounts for a the placer of a placed item's loot drop modifiers.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.getPiiPlacerActor() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.presence.ActionPresenceInstance will not fully initialize in a stateless environment.&lt;br /&gt;
*Added support for custom / proc gen (stored in a placeable's user defined data) instance trigger definitions.&lt;br /&gt;
*A net.lugdunon.state.item.Item's currency will no longer be initialized in a stateless environment.&lt;br /&gt;
*A net.lugdunon.state.item.Item's actionPresence will no longer be initialized in a stateless environment.&lt;br /&gt;
*net.lugdunon.state.item.Item.toJSONObject() now serializes the items phasingStrategy if it exists.&lt;br /&gt;
*Added net.lugdunon.state.item.ItemDefinitionExistsException to the server-side code base.&lt;br /&gt;
*Added static net.lugdunon.state.item.Item.toString(String itemId, int stackSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.duplicateItem(String sourceItemDef, String newItemDefId, String iconId, String name, String description) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.duplicateItemWithSave(String sourceItemDef, String newItemDefId, String iconId, String name, String description) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.Item.fromJSONArray(JSONArray a) uses setItem(Item i) instead of direct cache.put() calls.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllNPCSpawners() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) to the server-side API.&lt;br /&gt;
*The metricData object in net.lugdunon.state.metric.item.ItemBrokenMetric.handleMetric(JSONObject store, Object metricData) is now a string containing the itemId of the referenced item.&lt;br /&gt;
*The damage amount specified in the metricData object in net.lugdunon.state.metric.item.ItemDamageMetric.handleMetric(JSONObject store, Object metricData) will now be interpreted as its absolute value.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemDamagedMetric.getName() returns &amp;quot;Item Damage&amp;quot; now instead of &amp;quot;Items Damaged&amp;quot;.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemEquippedMetric to the code base.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemUnequippedMetric to the code base.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemUsedMetric to the code base.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.handleMetric(JSONObject store, Object metricData) now informs listeners in all cases of a visited settlement.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.getName() returns &amp;quot;Settlements Visited&amp;quot; now instead of &amp;quot;Settlement Visited&amp;quot;.&lt;br /&gt;
*Added net.lugdunon.state.metric.settlement.SettlementVisitedMetric.getSectionHeight() to the client-side API.&lt;br /&gt;
*net.lugdunon.state.metric.settlement.SettlementVisitedMetric.renderMetricData(el,data) is now implemented.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.listProceduralQuestIds() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getProceduralQuest(String questId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.chain.ChainedQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.chain.QuestChain to the server-side code base.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.abandon.ItemDebit's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.abandon.PlaceableRemoval's edit UI, the requirements drop down will be disabled if no requirements of type &amp;quot;net.lugdunon.state.quest.progress.PlaceItem&amp;quot; are used for this quest.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.AdvancementReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.AdvancementReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.CurrencyReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.CurrencyReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ExperienceReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ExperienceReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.FactionReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.FactionReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.HonorificReward to the code base.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.reward.ItemReward's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ItemReward.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.ItemReward.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.reward.TitleReward to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ClientSideNotification.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ClientSideNotification.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ICompletionCondition.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ICompletionCondition.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Refactored how net.lugdunon.state.quest.condition.completion.ItemDebit goes about enumerating its items for removal.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ItemDebit.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.ItemDebit.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.ItemDebit's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.PlaceableRemoval.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.PlaceableRemoval.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.PlaceableRemoval's edit UI, the requirements drop down will be disabled if no requirements of type &amp;quot;net.lugdunon.state.quest.progress.PlaceItem&amp;quot; are used for this quest.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.SendMail.getCompletionFailedMessage(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.condition.completion.SendMail.finalizeCompletion(PlayerCharacter quester) to the server-side API.&lt;br /&gt;
*In the net.lugdunon.state.quest.condition.completion.SendMail's edit UI, the item icon will now show a tooltip of &amp;quot;No Item&amp;quot; if no item is selected.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.runtime.IRuntimePointOfInterest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.runtime.PlaceableItemInstancePointOfInterest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.pointOfInterest.PointOfInterest to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.BaseProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.CollectExistingResource to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.CraftExistingItem to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.DamageExistingPlaceable to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.DefaultProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ExistingNPCProximity to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.KillExistingNPC to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.PresetItemDelivery to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ProceduralQuest to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.ProceduralQuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.procedural.SimpleItemDelivery to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalNamed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalReleased to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.AnimalTrapped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemAltered to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemDamaged to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemEquipped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemUnequipped to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ItemUsed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ModifierApplyOrDispel to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.ModifierGainOrLose to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCHurtOrHealed to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.SettlementVisited to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.SpellCast to the code base.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.CraftItem to net.lugdunon.state.quest.progress.ItemCrafted.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.PlaceItem to net.lugdunon.state.quest.progress.ItemPlaced.&lt;br /&gt;
*Renamed net.lugdunon.state.quest.progress.KillNPC to net.lugdunon.state.quest.progress.NPCKilled.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.getProgressTextVariables() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.hasPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.addPointOfInterest (PointOfInterest pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.IProgress.getPointOfInterestId(String suffix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.hasPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.addPointOfInterest (PointOfInterest pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.BaseProgress.getPointOfInterestId(String suffix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.getProgressTextVariables() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.incrementPrevCount() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.decrementPrevCountBy() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.incrementPrevCountBy(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableBasedProgress.decrementPrevCountBy(int i) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.quest.progress.CountableBasedProgress.setPrevCount(int prevCount) can no longer take the previous count below 0.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.filterOn() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.showEmpty() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableItemBasedProgress.showSlider() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.CountableNPCBasedProgress.init(QuestProgress progress) to the server-side API.&lt;br /&gt;
*Refactored the logic in net.lugdunon.state.quest.progress.CountableNPCBasedProgress to be more sane.&lt;br /&gt;
*net.lugdunon.state.quest.progress.NPCProximity can now define a chance to succeed, retry interval, and the text that displays to the client if the chance check fails.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setConditionProps(JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setChance(double chance) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setFailText(String failText) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.setRetryInterval(long retryInterval) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.getEditorData() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.progress.NPCProximity.renderUI(parent,requirement) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.trigger.PlaceableItemTrigger to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHook to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.getRequirementConditionPointsOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addRequirementCondition(String id, String type, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeRequirementCondition(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addCompletionCondition(ICompletionCondition completion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeCompletionCondition(ICompletionCondition completion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.addAbandonCondition(IAbandonCondition abandon) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.removeAbandonCondition(IAbandonCondition abandon) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.getStoryArc() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.Quest.setStoryArc(String storyArc) to the server-side API.&lt;br /&gt;
*Added support for story arc assignment to net.lugdunon.state.quest.Quest.&lt;br /&gt;
*Added error handling to net.lugdunon.state.quest.QuestData.abandonQuest(String questId).&lt;br /&gt;
*net.lugdunon.state.quest.QuestData.abandonQuest(String questId) now supports the handling of completion failure.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.alertListener(listener,questId,action) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.updateQuest(questId,res) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestData.renderTooltip(data) to the client-side API.&lt;br /&gt;
*net.lugdunon.state.quest.QuestData.addQuestProgressListener(qpl) will now call all listener's questUpdated() handler.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.getProceduralQuest(String questId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.getQuestHub(String hubId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestDefinitions.addQuestWithSave(JSONObject quest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHook to the code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestHub to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.state.quest.QuestProgerss.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.quest.QuestProgerss now supports points of interest, which can be defined during procedural generation, requirement conditions, or at runtime.&lt;br /&gt;
*Added net.lugdunon.state.recipe.Recipe.debit(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.recipe.Recipe.getLevel() to the server-side API.&lt;br /&gt;
*net.lugdunon.state.recipe.Recipes can now be instantiated in a stateless environment.&lt;br /&gt;
*Added static net.lugdunon.state.State.filter(String text, Map&amp;lt;String,String&amp;gt; replacements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.postInit() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.initWorldMapLayers() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getStoryArcs() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.hasStoryArcs() to the server-side API.&lt;br /&gt;
*Renamed net.lugdunon.state.World.getQuestDefintions() to net.lugdunon.state.World.getQuestDefinitions().&lt;br /&gt;
*net.lugdunon.state.World now loads the vendor cache after the item worth calculations have processed.&lt;br /&gt;
*net.lugdunon.util.FastMath's random functions can now be used in a stateless environment.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName)  to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FileFilter filter) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FileFilter filter, boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FilenameFilter filter)  to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.listFilesIn(String directoryName, FilenameFilter filter, boolean absolute) to the server-side API.&lt;br /&gt;
*net.lugdunon.util.FileUtils.copyFile(File sourceFile, File destFile) now supports the deep copying of directories.&lt;br /&gt;
*Added net.lugdunon.util.TextVariable to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.QuestPostProcessor to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, int[] loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, String state, int[] loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, int[] loc, JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable(String placeable, String state, int[] loc, JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.process(JSONArray items) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.matches(String placeableItemDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.setUserDefinedData(JSONObject userDefinedData) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.performStallAssignment (JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, JSONArray citizens, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.LivestockStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.RepairStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.ResearchStall.performStallAssignment.(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.Plot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.ManorPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot.generateInstanceTemplate(String townId, String plotId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.MarketPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.MarketPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlement.settlements.generators.town.RapidTransitPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.RapidTransitPlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.SmallHomePlot.assignPlot(String plotId, String townId, String townName, Rect townBounds, JSONArray items, JSONArray citizens, JSONArray postProcessors, byte[] elevationData, short[] terrainData, int worldDim, Rect plotDim, Rect logicalPlotDim) to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.BrigandCampSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.FarmSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.TownSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.TradesmanSettlementGenerator.makeSettlement(...) now provides a citizens settlement argument.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator refactored to take advantage of the new procedural quest generation API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator.generateInstanceTemplate(JSONObject lyceumUDD, SpellSchool spellSchool, Deity deity, String settlementId, JSONArray citizens) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.BrigandCampSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.BrigandCampSettlement.renderAdditionalTooltipInformation(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getTooltipWidth() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.renderAdditionalTooltipInformation() to the client-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.Settlement.headingFromPlayer() refactored to use the net.lugdunon.util.Math.headingFrom(destination,origin) helper function.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.renderAdditionalTooltipInformation() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getTooltipWidth() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getTooltipHeight() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.renderTooltip() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addQuestHook(QuestHook questHook) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getQuestHook(int type, String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listQuestHooks() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addCitizen(String citizen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listCitizens() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.SettlementBiome.init(Terrain terrain, PlaceableItemCache placeableItemCache) now uses the net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) method to handle its placeable definitions.&lt;br /&gt;
*net.lugdunon.world.instance.Instance.init(String terrainFile, Tileset tileset, Object seed) now uses the net.lugdunon.state.item.PlaceableItemCache.processPlaceables(JSONArray placeables) method to handle its placeable definitions.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.event.IElevationChangeListener to the server-side code base.&lt;br /&gt;
*Added net.lugdunon.world.terrain.event.ITerrainChangeListener to the server-side code base.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.TERRAIN_IMAGE_TYPE_MAX_VALUE increased to 2 from 1.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.addTerrainChangeListener(ITerrainChangeListener tcl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.removeTerrainChangeListener(ITerrainChangeListener tcl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.informTerrainChangeListeners(Set&amp;lt;Integer&amp;gt; chunksUpdated) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.addElevationChangeListener(IElevationChangeListener ecl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.removeElevationChangeListener(IElevationChangeListener ecl) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.informElevationChangeListeners(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getLayerImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getElevationImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getReliefMapImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getBiomeImage() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getLayerImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getElevationImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getReliefMapImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getBiomeImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setElevationData(int index, byte elevation) to the server-side API.&lt;br /&gt;
*Added new world property: &amp;quot;minimap.show.ruins&amp;quot;. If set to true, all ruin instances will appear on minimap.&lt;br /&gt;
*Added new world property: &amp;quot;minimap.show.caverns&amp;quot;. If set to true, all cavern instances will appear on minimap.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) no longer calls the overworld instance's init() directly.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) now calls State.instance().getWorld().postInit() after a successful state intialization.&lt;br /&gt;
*net.lugdunon.Server.start(IFatalErrorHandler feh, boolean skipNetworkInterfaceEnumeration) now calls State.instance().loadAccounts() after a successful state intialization instead of relying on the State instance for that.&lt;br /&gt;
*Added net.lugdunon.character.Character.getPinLocation(pinLoc) to the client-side API.&lt;br /&gt;
*net.lugdunon.character.NonPlayerCharacter.setQuestState(qsi,qs) will now add/remove NPC to/from map view.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.hasStoryArc() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.getStoryArc() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.PlayerCharacter.titleOrHonorificUpdated() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.input.keybind.MapviewToggleKeybinding to the client-side code base. (Defaults to '[').&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_CRAFTABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_EQUIPPABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_USEABLE_ITEMS_ONLY(item) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.map.Map to the client-side code base.&lt;br /&gt;
*Removed net.lugdunon.ui.minimap.Minimap.getPinLo(pin) from the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.getPinLocation(pin) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questAccepted(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questAbandoned(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questCompleted(questId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.ui.minimap.Minimap.questUpdated(questId) to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.constructProvinceText(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPlacesOfInterestTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPlacesToAvoidTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getOpposingFactionTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTavernTextFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getPopulationLevel(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getDeitiesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getExportsFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getServicesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTradesPrelimFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getTradesFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getConflictLevelFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getConflictLevelCautionFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getFactionFor(province) is now a static function.&lt;br /&gt;
*net.lugdunon.ui.politics.panel.ProvincePanel.getOpposingFactionFor(province) is now a static function.&lt;br /&gt;
*Added net.lugdunon.ui.quest.progress.QuestProgressDialog.questUpdated(questId) to the client-side API.&lt;br /&gt;
*Refactored net.lugdunon.ui.quest.progress.QuestProgressDialog.setSelectedQuest(el,quest)'s handling of success/acceptance/detail text.&lt;br /&gt;
*Refactored how net.lugdunon.ui.Window lays out its content.&lt;br /&gt;
*Refactored net.lugdunon.util.Math.distanceFromPlayerLocation(destination) to work a little better.&lt;br /&gt;
*net.lugdunon.util.Math.distanceSquared(p0,p1,max) now accepts a max argument (for wrapping the coordinate plane).&lt;br /&gt;
*net.lugdunon.util.Math.distance(p0,p1,max) now accepts a max argument (for wrapping the coordinate plane).&lt;br /&gt;
*Added net.lugdunon.util.Math.headingFrom(source,destination) to the client-side API.&lt;br /&gt;
*Namespace.registerCustomMetaTags() is now a little more sane.&lt;br /&gt;
*Added Array.containsAll(a) to the client-side API.&lt;br /&gt;
*Array.contains(o) now supports an array of matches.&lt;br /&gt;
*Added Number.headingToString() to the client-side API.&lt;br /&gt;
*Added Game.mapView to the client-side API.&lt;br /&gt;
*Added CORE.BEHAVIOR.PLAY.DEAD behavior.&lt;br /&gt;
*Added CORE.PLAY.DEAD behavior state.&lt;br /&gt;
*Added net.lugdunon.command.core.character.creation.InvokeCharacterCreationExtensionCommand.&lt;br /&gt;
*Increased the base cost of Mistletoe from 7500 to 20000.&lt;br /&gt;
*Increased the base cost of Horn of Elsbeth's Pumpkin Ale from 150 to 180.&lt;br /&gt;
*Set the base cost of a Horn of Marisa's Loping Lager to 180.&lt;br /&gt;
*Deadly NightShade now has a chance to drop a Black Pigment when harvested with a Scythe. &lt;br /&gt;
*Rich Culture's name and description now properly use 'Rich'.&lt;br /&gt;
*Added an NPC cooking prop tool.&lt;br /&gt;
*Added a weak claw NPC attack.&lt;br /&gt;
*Added a strong slash NPC attack.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemUsedMetric.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemEquippedMetric.&lt;br /&gt;
*Added the metric net.lugdunon.state.metric.item.ItemUnequippedMetric.&lt;br /&gt;
*Added a PREFIX_BARMAID name group.&lt;br /&gt;
*Added and removed some names from the SUFFIX_BRIGAND name group.&lt;br /&gt;
*Added, removed, and moved some other names.&lt;br /&gt;
*Added a black bear NPC.&lt;br /&gt;
*Added a snow bear NPC.&lt;br /&gt;
*Brown bear baseHealth decreased to 100 from 150.&lt;br /&gt;
*Brown bear awardExperience decreased to 30 from 20.&lt;br /&gt;
*Coal can now be crafted by smelting Wooden Logs.&lt;br /&gt;
*Horn Mugs no longer require Bronze Bars to craft.&lt;br /&gt;
*Added etc/storyArcs.json.&lt;br /&gt;
*Added etc/quests.&lt;br /&gt;
*Added etc/quests/hubs/.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation) now uses the Terrain.setElevationData() API.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now informs the CORE.METRIC.SPELL.MODIFIER.EXPIRED metric instead of the CORE.METRIC.SPELL.MODIFIER.LOST.&lt;br /&gt;
*Black Bear now have a chance to spawn in Meadow biomes.&lt;br /&gt;
*Black Bear now have a chance to spawn in Forest biomes.&lt;br /&gt;
*Black Bear now have a chance to spawn in Piedmont biomes.&lt;br /&gt;
*Brown Bear now have a chance to spawn in Steppe biomes.&lt;br /&gt;
*Snow Bear now have a chance to spawn in Steppe biomes.&lt;br /&gt;
*Snow Bear now have a chance to spawn in Alpine biomes.&lt;br /&gt;
*Lyceum settlements are now quest hubs.&lt;br /&gt;
*Added 5 procedurally generated opening quest chains for Lyceums.&lt;br /&gt;
*Fixed armor stand instances in town barracks instances.&lt;br /&gt;
*Fixed some chair orientations in town barracks instances.&lt;br /&gt;
*Added a basement to town barracks instances.&lt;br /&gt;
*Greatly expanded the interior of lyceum instances.&lt;br /&gt;
*Greatly expanded the interior of town manor house instances.&lt;br /&gt;
*Greatly expanded the interior of town tavern instances.&lt;br /&gt;
*Began to work on a tiled region instance generator.&lt;br /&gt;
*Added CORE.CHEF.USE.STOVE behavior state.&lt;br /&gt;
*Added CORE.CHEF.PATH.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.FACE.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.SEARCH.BIN behavior state.&lt;br /&gt;
*Added CORE.CHEF.PATH.STOVE behavior state.&lt;br /&gt;
*Added CORE.CHEF.FACE.STOVE behavior state.&lt;br /&gt;
*Added delivery quest template item.&lt;br /&gt;
*Added fire shrine placeable item.&lt;br /&gt;
*Added water shring placeable item.&lt;br /&gt;
*Added NPCs for tavern and lyceum interior.&lt;br /&gt;
*Added procedural quest template: &amp;quot;collect.existing.resource.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;damage.existing.placeable.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;kill.existing.npc.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;npc.proximity.template&amp;quot;.&lt;br /&gt;
*Added procedural quest template: &amp;quot;craft.existing.item.template&amp;quot;.&lt;br /&gt;
*Added tavern barmaid vendor.&lt;br /&gt;
*Information location holder item added to tinkering vendor.&lt;br /&gt;
*Planter / harvester item added to tinkering vendor.&lt;br /&gt;
*Added spell vendors for each spell school.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItems(JSONObject instanceConfig, Terrain terrain, PlaceableItemCache placeableItemCache) to provide a more random and even distribution of placeable items.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getRecipes() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setRecipes(Recipes recipes) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getAdvancements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setAdvancements(Advancements advancements) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getQuestDefinitions() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setQuestDefinitions(QuestDefinitions questDefinitions) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.getCurrency() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.setCurrency(String currency) to the server-side API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2018-07-07T08:33:22Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.7|0.8.7 (28/06/2018)]]&lt;br /&gt;
* [[Release_0.8.6.1|0.8.6.1 (22/12/2017)]]&lt;br /&gt;
* [[Release_0.8.6|0.8.6 (16/12/2017)]]&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.8 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.7</id>
		<title>Release 0.8.7</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.7"/>
				<updated>2018-06-28T17:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.7'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''28/06/2018''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2018-06-28T17:36:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.8'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 28/06/2018''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.7</id>
		<title>Release 0.8.7</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.7"/>
				<updated>2018-06-28T17:36:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.7''''   ''28/06/2018''    Mods altered in this update:     Server mods altered in this update:     /etc files altered in this update:     Known Issues:   ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.7''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''28/06/2018''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-12-23T03:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.6.1|0.8.6.1 (22/12/2017)]]&lt;br /&gt;
* [[Release_0.8.6|0.8.6 (16/12/2017)]]&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.7 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.6.1</id>
		<title>Release 0.8.6.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.6.1"/>
				<updated>2017-12-23T03:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.6.1'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''22/12/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*items.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*Weather Information Provider does nothing at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Client 0.8.6 -&amp;gt; 0.8.6.1&lt;br /&gt;
*Server 0.8.6 -&amp;gt; 0.8.6.1&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.3 -&amp;gt; 0.1.4&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.8 -&amp;gt; 0.0.9&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.15 -&amp;gt; 0.0.16&lt;br /&gt;
*Fixed the ARC Matter Condenser tooltip.&lt;br /&gt;
*Added the concept of ephemeral placeable items. Ephemeral items take up no world space, and as such can't be violated by another placeable item instance or world changing action.&lt;br /&gt;
*Fixed an issue that was causing havoc across several different systems (loot, faction reputation, honorific assignments, etc) when an NPC was slain by a PC.&lt;br /&gt;
*Fixed an issue that was preventing certain environment based placeable item damage (candle expiration, campfire expiration, etc) when no immediate actor was provided.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.applyDamage(String dmgType, int dmgApplied) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.isEphemeral() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isEphemeral() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.setReceiver(Character receiver) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getReceiver() to the server-side API.&lt;br /&gt;
*Release notes link will now size properly.&lt;br /&gt;
*Warping to a town from the provinces section of the politics dialog should now work from secondary instances.&lt;br /&gt;
*Fixed an issue with cursor translation on item placement.&lt;br /&gt;
*Fixed the silver chain recipe (replaced the central iron ring with silver ring).&lt;br /&gt;
*Deadly nightshade now drops a pigment (black).&lt;br /&gt;
*Weather information provider recipe added.&lt;br /&gt;
*Fixed several item descriptions.&lt;br /&gt;
*Wheat will no longer show as corn.&lt;br /&gt;
*Corn will no longer show as wheat.&lt;br /&gt;
*Tree panting range increased from 3 to 6 tiles.&lt;br /&gt;
*Fixed several arc item's inventory window background.&lt;br /&gt;
*Electrifryer placeables will now properly transition to inventory items.&lt;br /&gt;
*Fixed the label offsets on several placeable items.&lt;br /&gt;
*Nemeton ARC generators should now be placeable.&lt;br /&gt;
*Planter harvester should now properly contain 5 information out conduits.&lt;br /&gt;
*Custom regen intervals (as supplied in the world config property &amp;quot;default.character.stats.regen.interval&amp;quot; will now take effect from the first launch. &lt;br /&gt;
*Custom advancement cost ceilings (as supplied in the world config property &amp;quot;default.character.stats.advancement.cost.ceiling&amp;quot; will now take effect from the first launch. &lt;br /&gt;
*Flax seed icon mapping corrected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.6.1</id>
		<title>Release 0.8.6.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.6.1"/>
				<updated>2017-12-23T03:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.6'''''   ''22/12/2017''    Mods altered in this update: *net.lugdunon.world.defaults.character *net.lugdunon.world.clover.tui    Server mods altered in th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.6'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''22/12/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*items.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*Weather Information Provider does nothing at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Client 0.8.6 -&amp;gt; 0.8.6.1&lt;br /&gt;
*Server 0.8.6 -&amp;gt; 0.8.6.1&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.3 -&amp;gt; 0.1.4&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.8 -&amp;gt; 0.0.9&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.15 -&amp;gt; 0.0.16&lt;br /&gt;
*Fixed the ARC Matter Condenser tooltip.&lt;br /&gt;
*Added the concept of ephemeral placeable items. Ephemeral items take up no world space, and as such can't be violated by another placeable item instance or world changing action.&lt;br /&gt;
*Fixed an issue that was causing havoc across several different systems (loot, faction reputation, honorific assignments, etc) when an NPC was slain by a PC.&lt;br /&gt;
*Fixed an issue that was preventing certain environment based placeable item damage (candle expiration, campfire expiration, etc) when no immediate actor was provided.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.applyDamage(String dmgType, int dmgApplied) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.isEphemeral() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isEphemeral() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.setReceiver(Character receiver) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getReceiver() to the server-side API.&lt;br /&gt;
*Release notes link will now size properly.&lt;br /&gt;
*Warping to a town from the provinces section of the politics dialog should now work from secondary instances.&lt;br /&gt;
*Fixed an issue with cursor translation on item placement.&lt;br /&gt;
*Fixed the silver chain recipe (replaced the central iron ring with silver ring).&lt;br /&gt;
*Deadly nightshade now drops a pigment (black).&lt;br /&gt;
*Weather information provider recipe added.&lt;br /&gt;
*Fixed several item descriptions.&lt;br /&gt;
*Wheat will no longer show as corn.&lt;br /&gt;
*Corn will no longer show as wheat.&lt;br /&gt;
*Tree panting range increased from 3 to 6 tiles.&lt;br /&gt;
*Fixed several arc item's inventory window background.&lt;br /&gt;
*Electrifryer placeables will now properly transition to inventory items.&lt;br /&gt;
*Fixed the label offsets on several placeable items.&lt;br /&gt;
*Nemeton ARC generators should now be placeable.&lt;br /&gt;
*Planter harvester should now properly contain 5 information out conduits.&lt;br /&gt;
*Custom regen intervals (as supplied in the world config property &amp;quot;default.character.stats.regen.interval&amp;quot; will now take effect from the first launch. &lt;br /&gt;
*Custom advancement cost ceilings (as supplied in the world config property &amp;quot;default.character.stats.advancement.cost.ceiling&amp;quot; will now take effect from the first launch. &lt;br /&gt;
*Flax seed icon mapping corrected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.6</id>
		<title>Release 0.8.6</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.6"/>
				<updated>2017-12-21T02:32:54Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.6'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''16/12/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*clientConnectMessage.json&lt;br /&gt;
*items.json&lt;br /&gt;
*modifiers.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*Certain properties don't take effect until second start. (DefaultCharacterStats)&lt;br /&gt;
*Kill brigand leader causes cascading stack trace when assigning honorific (AssignHonorificCommand NPC -&amp;gt; PC Class Cast Error)&lt;br /&gt;
*Aggro on attack ai is broken&lt;br /&gt;
*Nothing is dropping loot when slain by pc&lt;br /&gt;
*Can't place nemetonic generator&lt;br /&gt;
*Candle expiration is bugged&lt;br /&gt;
*Town warp doesn't work in instances&lt;br /&gt;
*Location translation (range checks and placeable violation) still not working&lt;br /&gt;
*Arc matter condenser tooltip needs addressing&lt;br /&gt;
*No weather holder recipe.&lt;br /&gt;
*Corn and wheat graphics are swapped.&lt;br /&gt;
*Flax seed has wrong icon.&lt;br /&gt;
*Silver chain recipe broken&lt;br /&gt;
*Nightshade not dropping pigment&lt;br /&gt;
*Planter / harvester 4 -&amp;gt; 5 information outputs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.5 -&amp;gt; 0.8.6&lt;br /&gt;
*Client 0.8.5 -&amp;gt; 0.8.6&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.8 -&amp;gt; 0.0.9&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.2 -&amp;gt; 0.1.3&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.14 -&amp;gt; 0.0.15&lt;br /&gt;
*Fixed an issue with net.lugdunon.math.Rect.contains(p, wrap) when used on terrain boundaries.&lt;br /&gt;
*Fixed an issue with net.lugdunon.math.Rect.contains(Point p, int wrap) when used on terrain boundaries.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.weather.RainOrSnow triggering a Snow transition even if the weather is warmer than freezing.&lt;br /&gt;
*Fixed an issue with not being able to expire non-dispellable modifiers.&lt;br /&gt;
*Fixed an issue with equipping / un-equipping items that grant effects not properly adding / removing modifiers.&lt;br /&gt;
*Fixed tile map error on oak trees.&lt;br /&gt;
*Fixed tile map error on alder trees.&lt;br /&gt;
*Fixed spelling mistake on Measure Tile Distance item's name.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable that attempted to notify an account that their crop had perished even if they were not connected.&lt;br /&gt;
*Fixed an issue in net.lugdunon.state.metric.currency.CurrencyEarnedMetric that prevented the statistics / achievements panel from loading if currency earned was a null value.&lt;br /&gt;
*Fixed an issue in net.lugdunon.state.metric.currency.CurrencySpentMetric that prevented the statistics / achievements panel from loading if currency spent was a null value.&lt;br /&gt;
*Fixed an issues with net.lugdunon.command.core.arc.TogglePowerCommand crashing the client if triggered before the chunkManager has been initialized.&lt;br /&gt;
*net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) will now work for worlds other than 1024x1024 in size.&lt;br /&gt;
*net.lugdunon.state.item.arc.handler.CraftingStationArcHandler should now work as intended.&lt;br /&gt;
*NonPlayerCharacters will no longer attempt to resign themselves to long update mode if dead.&lt;br /&gt;
*Added ACTION_CONFIG_WEATHER icon.&lt;br /&gt;
*Added ARMOR_PLATE_A_HEAD icon.&lt;br /&gt;
*Added INFORMATION_WEATHER_HOLDER icon.&lt;br /&gt;
*Added INFORMATION_LOCATION_HOLDER.&lt;br /&gt;
*Added ARC_HARVESTER icon.&lt;br /&gt;
*Moved worldgen.procedural.make.roads from server to world property.&lt;br /&gt;
*Moved worldgen.procedural.make.provincial.roads from server to world property.&lt;br /&gt;
*Added worldgen.procedural.make.detailed.roads world property to allow for less detailed and less time / resource intensive road construction.&lt;br /&gt;
*Added ITEM.INFORMATION.WEATHER.HOLDER inventory item. Will provide various information values pertaining to the current location's weather.&lt;br /&gt;
*Added INFORMATION.WEATHER.HOLDER placeable item. Will provide various information values pertaining to the current location's weather.&lt;br /&gt;
*ITEM.SUNWHEEL can now be placed.&lt;br /&gt;
*Added INFORMATION.SUNWHEEL placeable item. Provides various time / environment based values for information consumers.&lt;br /&gt;
*Added styles for inventory panels for new weather / time information holders.&lt;br /&gt;
*Added styles for the arc visualizer ui.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.item.arc.tooltip.information.WeatherInformationProviderTooltipExtension to the code base.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.item.arc.handler.information.WeatherInformationProviderArcHandler to the code base.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.item.arc.handler.information.EnvironmentInformationProviderArcHandler to the code base.&lt;br /&gt;
*net.lugdunon.world.defaults.environment.command.ManageWeatherCommand should now work properly.&lt;br /&gt;
*Added etc/clientConnectMessage.json to the default world gen assets.&lt;br /&gt;
*Added recipe for ARMOR.ARC.PLATE.HEAD.&lt;br /&gt;
*Added recipe for ITEM.PLANTER.HARVESTER.&lt;br /&gt;
*Added recipe for ITEM.INFORMATION.LOCATION.HOLDER.&lt;br /&gt;
*Added ARC.HELM.VISUALIZE modifier.&lt;br /&gt;
*Empty buckets can be used in the planter / harvester.&lt;br /&gt;
*Flower seeds can be used in the planter / harvester.&lt;br /&gt;
*Potatoes can be used in the planter / harvester.&lt;br /&gt;
*Tomato seeds can be used in the planter / harvester.&lt;br /&gt;
*Wheat seeds can be used in the planter / harvester.&lt;br /&gt;
*Carrot seeds can be used in the planter / harvester.&lt;br /&gt;
*Artichoke seeds can be used in the planter / harvester.&lt;br /&gt;
*Pepper seeds can be used in the planter / harvester.&lt;br /&gt;
*Cucumber seeds can be used in the planter / harvester.&lt;br /&gt;
*Corn seeds can be used in the planter / harvester.&lt;br /&gt;
*Flax seeds can be used in the planter / harvester.&lt;br /&gt;
*Hops seeds can be used in the planter / harvester.&lt;br /&gt;
*Barley seeds can be used in the planter / harvester.&lt;br /&gt;
*Pumpkin seeds can be used in the planter / harvester.&lt;br /&gt;
*Sugarbeet seeds can be used in the planter / harvester.&lt;br /&gt;
*Mustard seeds can be used in the planter / harvester.&lt;br /&gt;
*Rosemary seeds can be used in the planter / harvester.&lt;br /&gt;
*Sage seeds can be used in the planter / harvester.&lt;br /&gt;
*Shears can be used in the planter / harvester.&lt;br /&gt;
*Pickaxes can be used in the planter / harvester.&lt;br /&gt;
*Axes can be used in the planter / harvester.&lt;br /&gt;
*Scythes can be used in the planter / harvester.&lt;br /&gt;
*Hoes can be used in the planter / harvester.&lt;br /&gt;
*Shovels can be used in the planter / harvester.&lt;br /&gt;
*Refactored code executed when NPC dies, such as loot distribution, metrics update, experience awards, etc. &lt;br /&gt;
*Added harvester.pulse.multiplier world property. The multiplier (applied to the Planter / Harvester's working area) that determines the arc pulse magnitude required to power a Planter / Harvester.&lt;br /&gt;
*Added worldgen.placeable.item.density.modifier world property. The modifier by which item placement for worlds greater than 1024 will be modified by. Must be a value greater than or equal to 0. If value is 0, this feature is disabled.&lt;br /&gt;
*Changed default value for world.gen world property from net.lugdunon.server.worldgen.defaults.DefaultWorldGen to net.lugdunon.server.worldgen.procedural.ProceduralWorldGen.&lt;br /&gt;
*Removed net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) from the server-side api.&lt;br /&gt;
*Removed net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) from the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Set&amp;lt;Point&amp;gt; additionalImpassableBlocks) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Set&amp;lt;Point&amp;gt; additionalImpassableBlocks, int searchDomain) to the server-side api.&lt;br /&gt;
*Refactored road generation in net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator to greatly increase performance.&lt;br /&gt;
*Added support for two levels of road generation in net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator, allowing for faster, less detailed pathfinding in addition to current pathfinding algorithm.&lt;br /&gt;
*Added  net.lugdunon.world.instance.Instance.npcsAt(Point actionLocation) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.toString() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.toLongString() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.toShortString() to the server-side api.&lt;br /&gt;
*Removed net.lugdunon.world.biome.dynamic.DynamicPlaceableItem.getPlaceableProbability() from the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.biome.dynamic.DynamicPlaceableItem.getPlaceableProbability(short terrainSize) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.world.biome.dynamic.DynamicPlaceableItem.DEFAULT_PLACEMENT_MULTIPLIER to the server-side api.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicPlaceableItem.getPlaceableProbability(short terrainSize) can now adjust rate of item placement in worlds larger than 1024x1024.&lt;br /&gt;
*Added net.lugdunon.util.palette.PaletteIndex(int pi) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.util.palette.PaletteIndex.getAlphaColor() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.World.hasClientConnectMessage() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.World.getClientConnectMessage() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.World.saveClientConnectMessage() to the server-side api.&lt;br /&gt;
*Added support for a client connect message that is displayed in a dialog when an account connects to a server for the first time.&lt;br /&gt;
*Added net.lugdunon.state.State.accountExists(String accountName) to the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.sprite.SpriteLayerImage.SpriteLayerImage(BufferedImage image) from the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.sprite.SpriteLayerImage.SpriteLayerImage(BufferedImage image, boolean sortByHue) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.recipe.Recipe.getCraftingArrangement() to the server-side api.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance can now update their grounded location on a state change.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCraftingContents() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.applyDamage(PlaceableItemInstance actor, String dmgType, int dmgApplied) to the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemInstance.generateAndDeliverLoot(String dmgType, Character acted, JSONArray drops) from the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.generateAndDeliverLoot(String dmgType, LootActor acted, JSONArray drops) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.canModify(String dmgType, Character actor) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.findAllSlotsWithItem(Item item) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.hasEnoughOfItem(Item item, int count) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.placeableStateUpdated(PlaceableItemInstance pii, Point lastLocation, String lastState) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsAt(Point location) to the server-side api.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemCache now also keeps track of all of its placeable items by their location.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getHarvesterActionHandler() to the server-side api.&lt;br /&gt;
*net.lugdunon.state.item.Item definitions can now be enabled for use in a Planter / Harvester by providing an implementation of net.lugdunon.state.item.harvester.action.IHarvesterActionHandler in the harvesterActionHandler property&lt;br /&gt;
*Added net.lugdunon.state.item.tooltip.ITooltipExtension.tooltipDestroyed to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.tooltip.CraftingStationTooltipExtension.renderArcsConsumed to the client-side api.&lt;br /&gt;
*net.lugdunon.state.item.tooltip.CraftingStationTooltipExtension now reports the information input designation table.&lt;br /&gt;
*Removed net.lugdunon.state.item.placement.DefaultPlacementHandler.violatesExistingPlaceable(Item itemDef, Point location, Instance instance) from the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.placement.DefaultPlacementHandler.violatesExistingPlaceable(Item itemDef, Point location, Instance instance, String state, boolean placedByGM) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.AnimatedContainerManifestationHandler to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.LootActor to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.state.item.loot.ILootDropStrategy.handleLootDrop(PlaceableItemInstance pii, String dmgType, Character acted, JSONArray drops) from the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, Character acted, JSONObject drop, DroppedLoot droppedLoot) from the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, Character acted, JSONObject drop, DroppedLoot droppedLoot) from the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, Character acted, JSONObject drop, DroppedLoot droppedLoot)from the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.ILootDropStrategy.handleLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONArray drops) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONObject drop, DroppedLoot droppedLoot) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONObject drop, DroppedLoot droppedLoot) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.loot.DefaultLootDropStrategy.handleIndividualLootDrop(PlaceableItemInstance pii, String dmgType, LootActor acted, JSONObject drop, DroppedLoot droppedLoot) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.IHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.BaseCollectionHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.BaseItemPlacementHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.BucketHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.HoeHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.ShearsHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.SowingHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.harvester.action.ToolHarvesterActionHandler to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.equipment.modifier.ArcHelmModifier to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.ArcVisualizer to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.tooltip.HarvesterTooltipExtension to the client-side codebase.&lt;br /&gt;
*net.lugdunon.state.item.arc.tooltip.ArcMatterFilterTooltipExtension.renderIODesignation() now renders information input table.&lt;br /&gt;
*net.lugdunon.state.item.arc.tooltip.ArcMatterCondenserTooltipExtension.renderIODesignation() temporarily disabled.&lt;br /&gt;
*Arcs consumed section will now only render in a tooltip if the item is placed.&lt;br /&gt;
*net.lugdunon.state.item.arc.tooltip.ArcBatteryTooltipExtension.renderIODesignation() now renders information input table.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.tooltip.ArcLogicGateTooltipExtension.tooltipDestroyed(itemDef,isPlaceableItemInstance,itemInstance) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.tooltip.ArcElementTooltipExtension.renderArcsConsumed(itemInstance) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.tooltip.information.LocationInformationProviderTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.PowerConfiguredStateArcHandler to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.HarvesterArcHandler to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.information.LocationInformationProviderArcHandler to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.IArcHandler.powerToggledClientUpdate(EnhancedDataOutputStream out) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.BaseArcHandler.powerToggledClientUpdate(EnhancedDataOutputStream out) to the server-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handlerIArcHandler.powerStateChangeOccurred() from the client-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.SwitchedLightingArcHandler.powerStateChangeOccurred() from the client-side api.&lt;br /&gt;
*Removed net.lugdunon.state.item.arc.handler.ConsumerArcHandler.powerStateChangeOccurred() from the client-side api.&lt;br /&gt;
*Added  to the client-side api.Added net.lugdunon.state.item.arc.handler.IArcHandler.arcsConsumed() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.IArcHandler.visualizeArcState() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.IArcHandler.powerStateChangeOccurred(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.SwitchedLightingArcHandler.powerStateChangeOccurred(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.ConsumerArcHandler.powerStateChangeOccurred(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.item.arc.handler.information.IInformationProviderArcHandler.INFORMATION_TYPE_LOCATION to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.MAX_CRAFTING_LEVEL to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.InventorySlot.toString() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.getFlavorText() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.isMainPlayer() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.getFlavorText() to the client-side api.&lt;br /&gt;
*Modifiers now support a flavorText property to provide some descriptive text to the modifier tooltip.&lt;br /&gt;
*net.lugdunon.math.Rect.contains(p, wrap) is now inclusive (pos1 &amp;lt;= loc &amp;lt;= pos2).&lt;br /&gt;
*net.lugdunon.math.Rect.contains(Point p) is now inclusive (pos1 &amp;lt;= loc &amp;lt;= pos2).&lt;br /&gt;
*Added net.lugdunon.math.Rect() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect(Point pos, Point pos2, int max) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.set(int x, int y, int w, int h) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getArea() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getPerimeter() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.containsX(int x) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.containsY(int y) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.containsX(int x, int wrap) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Rect.containsY(int y, int wrap) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Point.hashCode()  to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Point.PointComparator  to the server-side api.&lt;br /&gt;
*net.lugdunon.math.Point.set(int x, int y, short d) now returns itself.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.addW(int w) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.addH(int h) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.add(int i) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.subW(int w) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.subH(int h) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.sub(int i) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.getArea() to the server-side api.&lt;br /&gt;
*Added net.lugdunon.math.Dimension.getPerimeter() to the server-side api.&lt;br /&gt;
*net.lugdunon.math.Dimension.w is now public.&lt;br /&gt;
*net.lugdunon.math.Dimension.h is now public.&lt;br /&gt;
*net.lugdunon.command.Command.canPerformAction(Character character) is now static.&lt;br /&gt;
*net.lugdunon.command.Command.canPerformActionOn(Character character) is now static.&lt;br /&gt;
*net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) is now static.&lt;br /&gt;
*net.lugdunon.command.Command.violatesPlaceable(Point location, Instance instance) is now static.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand.commandResponse(res) sets game.loading = true for the duration of its execution.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements net.lugdunon.command.core.IServerInvokedCommand.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements net.lugdunon.command.core.IServerInvokedCommand.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements net.lugdunon.command.core.IServerInvokedCommand.&lt;br /&gt;
*net.lugdunon.command.core.play.DamagePlaceableCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.inventory.ItemDurabilityUpdateCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.inventory.ItemBrokenCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*net.lugdunon.command.core.edit.PlaceItemCommand can now be invoked at the behest of a PlaceableItemInstance.&lt;br /&gt;
*Added net.lugdunon.command.core.edit.PlaceItemCommand.satisfiesConsumptionRules(JSONObject tool, Item item, PlaceableItemInstance container) to the server-side api.&lt;br /&gt;
*Added net.lugdunon.command.core.edit.PlaceItemCommand.satisfiesConsumptionRules(JSONObject tool, Item item, PlayerCharacter activeCharacter) to the server-side api.&lt;br /&gt;
*net.lugdunon.command.core.arc.TogglePowerCommand.handle(CommandProperties props) now triggers a powerToggledClientUpdate() call on the placeable item instance's arc handler.&lt;br /&gt;
*Removed the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; from all server's server.cfg file.&lt;br /&gt;
*Removed game.hideTooltip() from the client-side API.&lt;br /&gt;
*Removed game.onHideTooltip(el) from the client-side API.&lt;br /&gt;
*Added support for a UI layer that will allow simpler implementation of custom UI elements.&lt;br /&gt;
*Added game.addUIElement(el) to the client-side codebase.&lt;br /&gt;
*Added game.removeUIElement(elId) to the client-side API.&lt;br /&gt;
*Added game.hideTooltip(renderer,renderData) to the client-side API.&lt;br /&gt;
*Added game.onHideTooltip(el,renderer,renderData) to the client-side API.&lt;br /&gt;
*Added game.loadingComplete() to the client-side API.&lt;br /&gt;
*Added game.listCurrentPlaceableItems(filterHandler,onScreenOnly) to the client-side API.&lt;br /&gt;
*Added game.invokeScreenRenderingHooks(mode) to the client-side API.&lt;br /&gt;
*Added game.addScreenRenderingHook(srh) to the client-side API.&lt;br /&gt;
*Added game.removeScreenRenderingHook(srh) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.util.ScreenRenderingHook to the client-side codebase. Screen rendering hooks are called at various steps in the draw call.&lt;br /&gt;
*net.lugdunon.util.Math.wrap(i,max) will treat max as game.tileSetDef.mapSize if no max is provided.&lt;br /&gt;
*net.lugdunon.util.Math.diff(i, j, max) will treat max as game.tileSetDef.mapSize if no max is provided.&lt;br /&gt;
*Removed net.lugdunon.states.tiledGame.TiledGame.hideTooltip() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.TiledGame.hideTooltip(renderer, renderData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.chunk.ChunkManager.registerChunksUpdatedListener(id,cuListener) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.chunk.ChunkManager.unregisterChunksUpdatedListener(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.renderEquipModifier(modId) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.tooltipDestroyed(itemInstance) to the client-side API.&lt;br /&gt;
*net.lugdunon.item.renderer.DefaultRenderer.renderTooltip(itemInstance) equipmentEffect rendering code changed to use the new flavorText property.&lt;br /&gt;
*game.client.handleQueuedResponses() will now log the actual stacktrace in addition to the opcode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-12-16T16:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.7)&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.7)&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Automated Resource Gathering&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.5&lt;br /&gt;
|Add support for automated resource gathering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ARC Visualization tool&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.5&lt;br /&gt;
|Add support for in-game visualization of arc power / matter / information.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-12-16T15:53:26Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.6|0.8.6 (16/12/2017)]]&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.7 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.6</id>
		<title>Release 0.8.6</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.6"/>
				<updated>2017-12-16T15:52:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.6'''''   ''16/12/2017''    Mods altered in this update:     Server mods altered in this update:     /etc files altered in this update:     Known Issues:  ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.6'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''16/12/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-12-16T15:52:17Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''08/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.currency.gsc&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*mods.json&lt;br /&gt;
*names.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/npcCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/terrain.dat&lt;br /&gt;
*instanceTemplates/BARRACKS/waypointCache.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*(Uncrafted) Small Limestone House Un-enterable.&lt;br /&gt;
*Statistics panel fails to render if no currency earned or spent.&lt;br /&gt;
*Damage taken statistic fails to render a 0 if no damage has been taken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.currency.gsc 0.0.4 -&amp;gt; 0.0.5&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.0 -&amp;gt; 0.1.1&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.13 -&amp;gt; 0.0.14&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*Added credits section to net.lugdunon.examples.mod.loginHandler mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.sprite mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio.music mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.elevation.editor.simple mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.state.character.movement.free mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.currency.gsc mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.environment mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.character mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.compendium mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.tui mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.defaults server.mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.procedural server.mod.json&lt;br /&gt;
*Fixed an issue with several items having invalid layer restriction values.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.command.ManageWeatherCommand that was allowing weather to persist when zoning if destination biome was null.&lt;br /&gt;
*Fixed width of the statistics label / value colums to allow for larger values.&lt;br /&gt;
*Fixed an issue with AssetManager.loadImage(assetKey,image,callback) loading null images.&lt;br /&gt;
*Fixed an issue with ssl when contacting auth and pls servers.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.TownSettlement.getSubLocationText(Point location) not being addressable at world creation time.&lt;br /&gt;
*Fixed some issues with location discrepancies in net.lugdunon.state.item.PlaceableItem*\nInstance.setLocation(Point location).&lt;br /&gt;
*Fixed an issue that was not non-player characters to not inform active behaviors that the behavior state has changed.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.character.behavior.BaseBehavior.getMostEsteemedFactionLevel(Character c) no returning expected results in some cases.&lt;br /&gt;
*Fixed some issues net.lugdunon.command.player.PlayerPathCommand's biome restriction code.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.player.PlayerMoveCommand not correctly updating the client-side weather state when transitioning into or away from a null biome.&lt;br /&gt;
*Fixed an issue with the windows clients failing to correctly update .jar files.&lt;br /&gt;
*New NPCDefs added will no longer accidentally share their instance data with other NPCDefs.&lt;br /&gt;
*Used the right UI element as the trigger for game.onShowHideLabel() in net.lugdunon.state.quest.progress.CountableItemBasedProgress.&lt;br /&gt;
*Fixed some perf issues with net.lugdunon.server.worldgen.procedural.post.ErosionPostProcessor.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.USE.STATION&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.SEARCH.SACKS&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed the file cleanup routine in net.lugdunon.server.worldgen.procedural.client.command.rest.PreviewImageClientCommandRESTHandler.&lt;br /&gt;
*Added a MEASURE_TILE_DISTANCE icon.&lt;br /&gt;
*Added a SIGN_WOOD_WALL icon.&lt;br /&gt;
*Added a ITEM_CONTAINER_STAND_ARMOR icon.&lt;br /&gt;
*Altered the traversal costs of most terrain layers to better predict pathing.&lt;br /&gt;
*Refactored the terrain layers in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json to rectify a bounding artifact issue with the lava biome.&lt;br /&gt;
*Added a net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot entry for towns in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardCaptainBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guard&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardCaptain&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a town barracks instance.&lt;br /&gt;
*Added a town barracks placeable item.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.noise.metazelda.generator.room.DefaultRoomGenerator now relies on the world's random seed to choose the dungeon's boss.&lt;br /&gt;
*Adjusted net.lugdunon.state.character.movement.free.FreeDirectionalMovement.NEXT_TO_IMPASSABLE_THRESHOLD from 0.0 to 0.2 to make movement next to walls and other impassable objects look more natural.&lt;br /&gt;
*Added support for negative currency values in net.lugdunon.currency.gsc.&lt;br /&gt;
*Added support for a redemption reason (ItemDefAndStackSize object) in net.lugdunon.currency.gsc.command.RedeemCoinCommand.&lt;br /&gt;
*Refactored weather fade in / out code to make it work as intended.&lt;br /&gt;
*Added server property worldgen.procedural.make.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols. Defaults to true.&lt;br /&gt;
*Added server property worldgen.procedural.make.provincial.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols and their surrounding settlements. Defaults to true.&lt;br /&gt;
*Changed net.lugdunon.server.worldgen.political.map.type etc entry in net.lugdunon.server.worldgen.procedural server.mod.json from class name to class name with props.&lt;br /&gt;
*Mod and property rows in the Alisanos Codex now show the proper cursor on mouseover.&lt;br /&gt;
*Credits are now supported via tooltip text in the Alisanos Codex for mods and server mods.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.versions.CodexRESTHandler now returns a credits array for each mod and server mod that defines one.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.consoleCommands.CodexRESTHandler now lists all console fired commands instead of just client-side console fired commands. Oopsy.&lt;br /&gt;
*Added game.getCurrencyInstance(value) to the client-side API. Shortcut to instantiate a currency object initialized with a given value.&lt;br /&gt;
*Added game.playerModifiers to represent the player's modifiers ui so that now game.modifiers can represent all of the available modifier definitions.&lt;br /&gt;
*Added relevant inventory subpanel css for the armor stand.&lt;br /&gt;
*Added a statistics header row for expanded statistics.&lt;br /&gt;
*Increased the large font option in the net.lugdunon.ui.sign.SignEditor from 42px to 48px.&lt;br /&gt;
*net.lugdunon.world.placeables.PIState.init() now instantiates the piState's content renderer is it exists and is valid.&lt;br /&gt;
*Refactored net.lugdunon.ui.inventory.sub.Container.renderContent(parent) to be more adaptable to future expansion of container types.&lt;br /&gt;
*Character path lengths are now represented as a short, up from a byte. This now allows path lengths of up to 2^16.&lt;br /&gt;
*The whitelist and blacklist APIs have been externalized from net.lugdunon.state.State and are now fully open for extension.&lt;br /&gt;
*Removed some misplaced init properties for net.lugdunon.item.ItemInstance in net.lugdunon.state.quest.progress.PlaceItem.&lt;br /&gt;
*net.lugdunon.state.quest.condition.completion.reward.CurrencyReward now provides a reason in the form of a net.lugdunon.state.quest.Quest instance.&lt;br /&gt;
*Added whitelist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added blacklist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added credits section to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*net.lugdunon.state.metric.Metric now uses getDisplayTotal(data) to render totals in the statistics section of the achievements dialog.&lt;br /&gt;
*A container's contents can now inform its physical appearance in the game world via the net.lugdunon.state.item.container.IContentsRenderer API, assigned to an item definition at props.states.[stateId].contentsRenderer.&lt;br /&gt;
*NPC and PC metric categories are now stored in &amp;quot;npcs&amp;quot; and &amp;quot;pcs&amp;quot; objects in order to provide a little more flexibility.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.getGroundedLocation() is now callable at world creation time.&lt;br /&gt;
*Calling net.lugdunon.state.item.PlaceableItemCache.deletePlaceableItemReference() at world creation time will no longer cause an unrecoverable error.&lt;br /&gt;
*net.lugdunon.state.item.manifestation.IManifestationHandler now supports layered foreground and background images.&lt;br /&gt;
*net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy's drop chance now relies on the world's random seed.&lt;br /&gt;
*The net.lugdunon.state.item.action.update.SpawnUpdateAction's respawn location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.state.character.behavior.PathBehavior now relies on the world's random seed to find a new path.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.buybackItem(NonPlayerCharacter npc, int si) now provides a reason in the form of a net.lugdunon.state.vendor.VendoredItem instance.&lt;br /&gt;
*An instance of net.lugdunon.state.character.Character will forget its attacker after 15 seconds.&lt;br /&gt;
*net.lugdunon.state.character.modifier.BaseModifier.renderTooltip() will now list the name of the applier, regardless of the character type (PC, NPC).&lt;br /&gt;
*net.lugdunon.state.character.behavior.AggroBehavior now supports the ability for an NPC to assist others of the same faction that are currently being attacked within a specified radius.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain(long instanceId, short[] terrain, byte[] elevation, byte[] biome, Tileset t, JSONObject instanceConfig, Object seed) now properly inits the terrain rendering strategy object to allow for a more robust procedural generation implementation.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.ITerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.AdjacentTileTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.Base16LayerTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.Chunk access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator implementations should now support the JSONObjectSerializable as well.&lt;br /&gt;
*The net.lugdunon.world.instance.spawner.MineshaftInstanceSpawner's return instance portal location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.boundedRandomValue(int min, int max) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.valueFromRandomDefinition(JSONObject o) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable no properly implements toJSONObject().&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence now supports an indent corners mode.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.TerrainAlteration now supports a new mode: MODE_SET. Set mode will simply overwrite the value at the specified terrain index with the provided value.&lt;br /&gt;
*If the world to populate is empty or doesn't exist and the server property 'populate.world.from.archive' resolves to a valid .lug archive, then net.lugdunon.state.World.init() will attempt to populate the world from the specified .lug archive.&lt;br /&gt;
*If the server property 'archive.on.world.creation' is set (to the name of the desired archive) then upon the completion of the world creation process, the world will be saved to the specified archive file.&lt;br /&gt;
*The active world generator now holds the world configuration map, and can still be accessed by net.lugdunon.state.World.getWorldConfig().&lt;br /&gt;
*net.lugdunon.state.vendor.slot.SimpleVendorSlot.handlePurchase(PlayerCharacter pc, NonPlayerCharacter npc) now provides a reason for the purchase (item purchased as an instance of net.lugdunon.state.item.ItemDefinitions.ItemDefAndStackSize);&lt;br /&gt;
*Added default whitelist and blacklist implementation mods to the build process.&lt;br /&gt;
*The tileset is now accessible during world generation.&lt;br /&gt;
*The placeable item cache is now accessible during world generation.&lt;br /&gt;
*Refactored net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to be more robust in in its search for the proper world.cfg file.&lt;br /&gt;
*net.lugdunon.math.voronoi.Voronoi.getCellForPoint(Point origin) now constructs the polygon using the new net.lugdunon.math.Line object instead of net.lugdunon.math.Point arrays.&lt;br /&gt;
*net.lugdunon.command.vendor.RepairItemCommand now provides a reason (repairs: List&amp;lt;RepairItemInstance&amp;gt;) for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.vendor.SellItemToVendorCommand now provides a reason for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.spell.DirecDamageCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirecHealCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirectInterruptCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierApplyCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierDispelCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now correctly handles biome transitions.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now relays path completion to the client.&lt;br /&gt;
*net.lugdunon.command.play.TillEarthCommand now relies on the world's random seed to determine whether or now to generate a turf item.&lt;br /&gt;
*net.lugdunon.command.play.ThrowPenguinEggCommand now relies on the world's random seed to determine when to spawn a penguin from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.ThrowEggCommand now relies on the world's random seed to determine when to spawn a chick from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.SetHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.ReturnHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.PlaceableStateChangeCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.ALTERED&amp;quot; metric update if a character changes the state of a placeable item instance.&lt;br /&gt;
*net.lugdunon.command.play.OpenAnimalBarrelCommand now relies on the world's random seed to determine when to release an animal from a barrel toss.&lt;br /&gt;
*net.lugdunon.command.play.InstanceTransitionCommand now invokes a &amp;quot;CORE.METRIC.GENERAL.PLAYER.INSTANCE.TRANSITION&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.DamagePlaceableCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.DAMAGED&amp;quot; metric update.&lt;br /&gt;
*Refactored net.lugdunon.command.inventory.MoveInventoryItemCommand logic to account for armor stands.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemDurabilityUpdateCommand now invokes a &amp;quot;CORE.METRIC.ITEM.DAMAGED&amp;quot; or &amp;quot;CORE.METRIC.ITEM.REPAIRED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemBrokenCommand now invokes a &amp;quot;CORE.METRIC.ITEM.BROKEN&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.core.edit.UpdateUserDefinedDataCommand now supports large strings (allows for data over 2^16 bytes in length).&lt;br /&gt;
*net.lugdunon.command.edit.PlaceItemCommand now relies on the world's random seed to choose from which item to place from the tool definition's list of available placeable items.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports rendering a political map.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now supports the inclusion of an &amp;quot;archive.name&amp;quot; property. If provided, upon save completion, the world's data will be written to a .lug archive using the &amp;quot;archive.name&amp;quot; property.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now falls back to an immediate save if the interval value is invalid or missing.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.KickCommand now supports a &amp;quot;reason&amp;quot; property, used to optionally record a reason for kicking the player.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now invokes a &amp;quot;CORE.METRIC.CURRENCY.EARNED&amp;quot; or &amp;quot;CORE.METRIC.CURRENCY.SPENT&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now supports a currency altered &amp;quot;reason&amp;quot; property.&lt;br /&gt;
*The standalone client's standaloneServer.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone servers' server.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone client will now issue an error if a world can not be removed.&lt;br /&gt;
*ITEM.CULTURE now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*ITEM.CULTURE.RICH now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR inventory item to items.json.&lt;br /&gt;
*Added CONTAINER.STAND.ARMOR placeable item to items.json.&lt;br /&gt;
*Added BAR.SMALL placeable item to items.json.&lt;br /&gt;
*Added SIGN.WOOD.WALL inventory item to items.json.&lt;br /&gt;
*Added SIGN.WOODEN.WALL placeable item to items.json.&lt;br /&gt;
*Added MEASURE_TILE_DISTANCE edit mode tool item to items.json.&lt;br /&gt;
*HOUSE.MEDIUM.BRICK.QUAINT renamed from &amp;quot;Small Brick House&amp;quot; to &amp;quot;Medium Brick House&amp;quot;.&lt;br /&gt;
*Added thin waterfalls for each of the 4 cardinal directions.&lt;br /&gt;
*Added a STREET.PREFIX category to names.json.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR carpentry recipe to recipes.json.&lt;br /&gt;
*net.lugdunon.world.defaults.character.modifier.StaminaOverTimeModifier correctly handle valueMode and school during object serialization.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.GAINED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.APPLIED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.LOST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.DISPELLED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.awardLoot(PlayerCharacter killer) now relies on the world's random seed when awarding loot.&lt;br /&gt;
*Added archive.on.world.creation server property.&lt;br /&gt;
*Added populate.world.from.archive server property.&lt;br /&gt;
*Added account.whitelist.external.check.interval world property.&lt;br /&gt;
*Added account.blacklist.external.check.interval world property.&lt;br /&gt;
*Added account.whitelist.denied.message world property.&lt;br /&gt;
*Added account.blacklist.denied.message world property.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(Point point) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getCraftingStation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTrade() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesman() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesmanGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getStreet(int orientation, int streetNumber) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreets() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsWithOrientation(int orientation) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsAtLocations(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(Point p) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(String plotId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(Plot plot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmer() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmerGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.getUserDefinedData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence(double chance, String placeable, String gatePlaceable, String[] gateStates, int[][] gateLocs, int indentCorners) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation(JSONArray pointsOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath,boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToJar(File source, JarOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToArchive(File source, ZipOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.extractArchive(String archiveURLOrFile, String destinationDirectory) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.distance(Point p0,Point p1,int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.worldExists(String worldId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getBehaviorState(int state) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getOverworldInstance() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.kickAccount(String account, String reason) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.doSave(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.archiveCurrentWorld(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.Saver(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.listSettlements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.findSettlementByPointOfInterest(Point pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causedByPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causeAsPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleModifierApplyEvent(String modifierId, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleStaminaChangeEvent(int staminaChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleHealthChangeEvent(int healthChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.attacked(Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isBeingAttacked() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getAttacker() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterNameForIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterType(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterId(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getCurrentPathTileIndex() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterItemUse.setCharacter(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId,Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.BaseBehavior.stateHasChanged(int previousState, int newState) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AtegnatosAggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.CycleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.DeathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.EvolveBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.FaceDirectionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.IdleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PerformActionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PlayerProximityBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.ReproduceBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.UseItemBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setTileset(Tileset tileset) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getTileset() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setPlaceableItemCache(PlaceableItemCache placeableItemCache) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getPlaceableItemCache(long instanceId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getX() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getY() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getW() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getH() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.intersects(Rect rect) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.wrap(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.set(int x, int y, short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.index(short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Location.equals(Location loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Object o) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Line l) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.flip() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Interpreter.listConsoleFiredCommands() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key, Point[] defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setPath(String key, Point[] value) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPathCompletion(float pathCompletion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPath(Point[] path) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand &amp;quot;pathCompletion&amp;quot; command property to the server-side API. This property consists of a real number bounded by 0.0 and 1.0 that indicates how far along the path the character is.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handlePostLoadInitialization() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getCurrentState() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getContentsRenderer() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getManifestationHandler() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.setPathCompletion(pathCompletion) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterIdentifier(characterOrIdentifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterType(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterNameForIdentifier(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getDisplayTotal(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getSectionHeight(el) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getForegroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getBackgroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(String repairId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isWhiteListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isBlackListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unBlackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unWhiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.kickAccount(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent (final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.BarracksPlot to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Road to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Street to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.TownPathingPostProcessor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Credit to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Attribution to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierWithActor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyAlteredReason to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.RepairItemInstance to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountWhitelist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountBlacklist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.modes.MeasureTileDistanceMode to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.BaseEnumeratedCausesMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.SpellCastMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierGainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierExpiredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierDispelledMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierAppliedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemAlteredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemRepairedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemBrokenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaRestoredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaDrainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerMovementMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerInstanceTransitionMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencySpentMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyEarnedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingReceivedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingDoneMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageTakenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageDealtMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.IContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.ArmorStandContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.SetPatrolBehavior to the codebase.&lt;br /&gt;
*Added net.lugdunon.math.NamedLocation to the server-side codebase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-12-16T15:51:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.7'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 16/12/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-08T15:59:52Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.currency.gsc&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*mods.json&lt;br /&gt;
*names.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/npcCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/terrain.dat&lt;br /&gt;
*instanceTemplates/BARRACKS/waypointCache.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*(Uncrafted) Small Limestone House Un-enterable.&lt;br /&gt;
*Statistics panel fails to render if no currency earned or spent.&lt;br /&gt;
*Damage taken statistic fails to render a 0 if no damage has been taken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.currency.gsc 0.0.4 -&amp;gt; 0.0.5&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.0 -&amp;gt; 0.1.1&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.13 -&amp;gt; 0.0.14&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*Added credits section to net.lugdunon.examples.mod.loginHandler mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.sprite mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio.music mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.elevation.editor.simple mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.state.character.movement.free mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.currency.gsc mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.environment mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.character mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.compendium mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.tui mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.defaults server.mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.procedural server.mod.json&lt;br /&gt;
*Fixed an issue with several items having invalid layer restriction values.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.command.ManageWeatherCommand that was allowing weather to persist when zoning if destination biome was null.&lt;br /&gt;
*Fixed width of the statistics label / value colums to allow for larger values.&lt;br /&gt;
*Fixed an issue with AssetManager.loadImage(assetKey,image,callback) loading null images.&lt;br /&gt;
*Fixed an issue with ssl when contacting auth and pls servers.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.TownSettlement.getSubLocationText(Point location) not being addressable at world creation time.&lt;br /&gt;
*Fixed some issues with location discrepancies in net.lugdunon.state.item.PlaceableItem*\nInstance.setLocation(Point location).&lt;br /&gt;
*Fixed an issue that was not non-player characters to not inform active behaviors that the behavior state has changed.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.character.behavior.BaseBehavior.getMostEsteemedFactionLevel(Character c) no returning expected results in some cases.&lt;br /&gt;
*Fixed some issues net.lugdunon.command.player.PlayerPathCommand's biome restriction code.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.player.PlayerMoveCommand not correctly updating the client-side weather state when transitioning into or away from a null biome.&lt;br /&gt;
*Fixed an issue with the windows clients failing to correctly update .jar files.&lt;br /&gt;
*New NPCDefs added will no longer accidentally share their instance data with other NPCDefs.&lt;br /&gt;
*Used the right UI element as the trigger for game.onShowHideLabel() in net.lugdunon.state.quest.progress.CountableItemBasedProgress.&lt;br /&gt;
*Fixed some perf issues with net.lugdunon.server.worldgen.procedural.post.ErosionPostProcessor.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.USE.STATION&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.SEARCH.SACKS&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed the file cleanup routine in net.lugdunon.server.worldgen.procedural.client.command.rest.PreviewImageClientCommandRESTHandler.&lt;br /&gt;
*Added a MEASURE_TILE_DISTANCE icon.&lt;br /&gt;
*Added a SIGN_WOOD_WALL icon.&lt;br /&gt;
*Added a ITEM_CONTAINER_STAND_ARMOR icon.&lt;br /&gt;
*Altered the traversal costs of most terrain layers to better predict pathing.&lt;br /&gt;
*Refactored the terrain layers in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json to rectify a bounding artifact issue with the lava biome.&lt;br /&gt;
*Added a net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot entry for towns in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardCaptainBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guard&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardCaptain&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a town barracks instance.&lt;br /&gt;
*Added a town barracks placeable item.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.noise.metazelda.generator.room.DefaultRoomGenerator now relies on the world's random seed to choose the dungeon's boss.&lt;br /&gt;
*Adjusted net.lugdunon.state.character.movement.free.FreeDirectionalMovement.NEXT_TO_IMPASSABLE_THRESHOLD from 0.0 to 0.2 to make movement next to walls and other impassable objects look more natural.&lt;br /&gt;
*Added support for negative currency values in net.lugdunon.currency.gsc.&lt;br /&gt;
*Added support for a redemption reason (ItemDefAndStackSize object) in net.lugdunon.currency.gsc.command.RedeemCoinCommand.&lt;br /&gt;
*Refactored weather fade in / out code to make it work as intended.&lt;br /&gt;
*Added server property worldgen.procedural.make.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols. Defaults to true.&lt;br /&gt;
*Added server property worldgen.procedural.make.provincial.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols and their surrounding settlements. Defaults to true.&lt;br /&gt;
*Changed net.lugdunon.server.worldgen.political.map.type etc entry in net.lugdunon.server.worldgen.procedural server.mod.json from class name to class name with props.&lt;br /&gt;
*Mod and property rows in the Alisanos Codex now show the proper cursor on mouseover.&lt;br /&gt;
*Credits are now supported via tooltip text in the Alisanos Codex for mods and server mods.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.versions.CodexRESTHandler now returns a credits array for each mod and server mod that defines one.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.consoleCommands.CodexRESTHandler now lists all console fired commands instead of just client-side console fired commands. Oopsy.&lt;br /&gt;
*Added game.getCurrencyInstance(value) to the client-side API. Shortcut to instantiate a currency object initialized with a given value.&lt;br /&gt;
*Added game.playerModifiers to represent the player's modifiers ui so that now game.modifiers can represent all of the available modifier definitions.&lt;br /&gt;
*Added relevant inventory subpanel css for the armor stand.&lt;br /&gt;
*Added a statistics header row for expanded statistics.&lt;br /&gt;
*Increased the large font option in the net.lugdunon.ui.sign.SignEditor from 42px to 48px.&lt;br /&gt;
*net.lugdunon.world.placeables.PIState.init() now instantiates the piState's content renderer is it exists and is valid.&lt;br /&gt;
*Refactored net.lugdunon.ui.inventory.sub.Container.renderContent(parent) to be more adaptable to future expansion of container types.&lt;br /&gt;
*Character path lengths are now represented as a short, up from a byte. This now allows path lengths of up to 2^16.&lt;br /&gt;
*The whitelist and blacklist APIs have been externalized from net.lugdunon.state.State and are now fully open for extension.&lt;br /&gt;
*Removed some misplaced init properties for net.lugdunon.item.ItemInstance in net.lugdunon.state.quest.progress.PlaceItem.&lt;br /&gt;
*net.lugdunon.state.quest.condition.completion.reward.CurrencyReward now provides a reason in the form of a net.lugdunon.state.quest.Quest instance.&lt;br /&gt;
*Added whitelist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added blacklist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added credits section to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*net.lugdunon.state.metric.Metric now uses getDisplayTotal(data) to render totals in the statistics section of the achievements dialog.&lt;br /&gt;
*A container's contents can now inform its physical appearance in the game world via the net.lugdunon.state.item.container.IContentsRenderer API, assigned to an item definition at props.states.[stateId].contentsRenderer.&lt;br /&gt;
*NPC and PC metric categories are now stored in &amp;quot;npcs&amp;quot; and &amp;quot;pcs&amp;quot; objects in order to provide a little more flexibility.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.getGroundedLocation() is now callable at world creation time.&lt;br /&gt;
*Calling net.lugdunon.state.item.PlaceableItemCache.deletePlaceableItemReference() at world creation time will no longer cause an unrecoverable error.&lt;br /&gt;
*net.lugdunon.state.item.manifestation.IManifestationHandler now supports layered foreground and background images.&lt;br /&gt;
*net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy's drop chance now relies on the world's random seed.&lt;br /&gt;
*The net.lugdunon.state.item.action.update.SpawnUpdateAction's respawn location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.state.character.behavior.PathBehavior now relies on the world's random seed to find a new path.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.buybackItem(NonPlayerCharacter npc, int si) now provides a reason in the form of a net.lugdunon.state.vendor.VendoredItem instance.&lt;br /&gt;
*An instance of net.lugdunon.state.character.Character will forget its attacker after 15 seconds.&lt;br /&gt;
*net.lugdunon.state.character.modifier.BaseModifier.renderTooltip() will now list the name of the applier, regardless of the character type (PC, NPC).&lt;br /&gt;
*net.lugdunon.state.character.behavior.AggroBehavior now supports the ability for an NPC to assist others of the same faction that are currently being attacked within a specified radius.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain(long instanceId, short[] terrain, byte[] elevation, byte[] biome, Tileset t, JSONObject instanceConfig, Object seed) now properly inits the terrain rendering strategy object to allow for a more robust procedural generation implementation.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.ITerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.AdjacentTileTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.Base16LayerTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.Chunk access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator implementations should now support the JSONObjectSerializable as well.&lt;br /&gt;
*The net.lugdunon.world.instance.spawner.MineshaftInstanceSpawner's return instance portal location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.boundedRandomValue(int min, int max) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.valueFromRandomDefinition(JSONObject o) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable no properly implements toJSONObject().&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence now supports an indent corners mode.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.TerrainAlteration now supports a new mode: MODE_SET. Set mode will simply overwrite the value at the specified terrain index with the provided value.&lt;br /&gt;
*If the world to populate is empty or doesn't exist and the server property 'populate.world.from.archive' resolves to a valid .lug archive, then net.lugdunon.state.World.init() will attempt to populate the world from the specified .lug archive.&lt;br /&gt;
*If the server property 'archive.on.world.creation' is set (to the name of the desired archive) then upon the completion of the world creation process, the world will be saved to the specified archive file.&lt;br /&gt;
*The active world generator now holds the world configuration map, and can still be accessed by net.lugdunon.state.World.getWorldConfig().&lt;br /&gt;
*net.lugdunon.state.vendor.slot.SimpleVendorSlot.handlePurchase(PlayerCharacter pc, NonPlayerCharacter npc) now provides a reason for the purchase (item purchased as an instance of net.lugdunon.state.item.ItemDefinitions.ItemDefAndStackSize);&lt;br /&gt;
*Added default whitelist and blacklist implementation mods to the build process.&lt;br /&gt;
*The tileset is now accessible during world generation.&lt;br /&gt;
*The placeable item cache is now accessible during world generation.&lt;br /&gt;
*Refactored net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to be more robust in in its search for the proper world.cfg file.&lt;br /&gt;
*net.lugdunon.math.voronoi.Voronoi.getCellForPoint(Point origin) now constructs the polygon using the new net.lugdunon.math.Line object instead of net.lugdunon.math.Point arrays.&lt;br /&gt;
*net.lugdunon.command.vendor.RepairItemCommand now provides a reason (repairs: List&amp;lt;RepairItemInstance&amp;gt;) for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.vendor.SellItemToVendorCommand now provides a reason for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.spell.DirecDamageCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirecHealCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirectInterruptCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierApplyCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierDispelCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now correctly handles biome transitions.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now relays path completion to the client.&lt;br /&gt;
*net.lugdunon.command.play.TillEarthCommand now relies on the world's random seed to determine whether or now to generate a turf item.&lt;br /&gt;
*net.lugdunon.command.play.ThrowPenguinEggCommand now relies on the world's random seed to determine when to spawn a penguin from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.ThrowEggCommand now relies on the world's random seed to determine when to spawn a chick from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.SetHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.ReturnHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.PlaceableStateChangeCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.ALTERED&amp;quot; metric update if a character changes the state of a placeable item instance.&lt;br /&gt;
*net.lugdunon.command.play.OpenAnimalBarrelCommand now relies on the world's random seed to determine when to release an animal from a barrel toss.&lt;br /&gt;
*net.lugdunon.command.play.InstanceTransitionCommand now invokes a &amp;quot;CORE.METRIC.GENERAL.PLAYER.INSTANCE.TRANSITION&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.DamagePlaceableCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.DAMAGED&amp;quot; metric update.&lt;br /&gt;
*Refactored net.lugdunon.command.inventory.MoveInventoryItemCommand logic to account for armor stands.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemDurabilityUpdateCommand now invokes a &amp;quot;CORE.METRIC.ITEM.DAMAGED&amp;quot; or &amp;quot;CORE.METRIC.ITEM.REPAIRED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemBrokenCommand now invokes a &amp;quot;CORE.METRIC.ITEM.BROKEN&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.core.edit.UpdateUserDefinedDataCommand now supports large strings (allows for data over 2^16 bytes in length).&lt;br /&gt;
*net.lugdunon.command.edit.PlaceItemCommand now relies on the world's random seed to choose from which item to place from the tool definition's list of available placeable items.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports rendering a political map.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now supports the inclusion of an &amp;quot;archive.name&amp;quot; property. If provided, upon save completion, the world's data will be written to a .lug archive using the &amp;quot;archive.name&amp;quot; property.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now falls back to an immediate save if the interval value is invalid or missing.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.KickCommand now supports a &amp;quot;reason&amp;quot; property, used to optionally record a reason for kicking the player.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now invokes a &amp;quot;CORE.METRIC.CURRENCY.EARNED&amp;quot; or &amp;quot;CORE.METRIC.CURRENCY.SPENT&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now supports a currency altered &amp;quot;reason&amp;quot; property.&lt;br /&gt;
*The standalone client's standaloneServer.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone servers' server.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone client will now issue an error if a world can not be removed.&lt;br /&gt;
*ITEM.CULTURE now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*ITEM.CULTURE.RICH now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR inventory item to items.json.&lt;br /&gt;
*Added CONTAINER.STAND.ARMOR placeable item to items.json.&lt;br /&gt;
*Added BAR.SMALL placeable item to items.json.&lt;br /&gt;
*Added SIGN.WOOD.WALL inventory item to items.json.&lt;br /&gt;
*Added SIGN.WOODEN.WALL placeable item to items.json.&lt;br /&gt;
*Added MEASURE_TILE_DISTANCE edit mode tool item to items.json.&lt;br /&gt;
*HOUSE.MEDIUM.BRICK.QUAINT renamed from &amp;quot;Small Brick House&amp;quot; to &amp;quot;Medium Brick House&amp;quot;.&lt;br /&gt;
*Added thin waterfalls for each of the 4 cardinal directions.&lt;br /&gt;
*Added a STREET.PREFIX category to names.json.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR carpentry recipe to recipes.json.&lt;br /&gt;
*net.lugdunon.world.defaults.character.modifier.StaminaOverTimeModifier correctly handle valueMode and school during object serialization.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.GAINED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.APPLIED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.LOST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.DISPELLED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.awardLoot(PlayerCharacter killer) now relies on the world's random seed when awarding loot.&lt;br /&gt;
*Added archive.on.world.creation server property.&lt;br /&gt;
*Added populate.world.from.archive server property.&lt;br /&gt;
*Added account.whitelist.external.check.interval world property.&lt;br /&gt;
*Added account.blacklist.external.check.interval world property.&lt;br /&gt;
*Added account.whitelist.denied.message world property.&lt;br /&gt;
*Added account.blacklist.denied.message world property.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(Point point) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getCraftingStation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTrade() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesman() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesmanGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getStreet(int orientation, int streetNumber) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreets() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsWithOrientation(int orientation) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsAtLocations(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(Point p) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(String plotId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(Plot plot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmer() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmerGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.getUserDefinedData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence(double chance, String placeable, String gatePlaceable, String[] gateStates, int[][] gateLocs, int indentCorners) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation(JSONArray pointsOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath,boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToJar(File source, JarOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToArchive(File source, ZipOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.extractArchive(String archiveURLOrFile, String destinationDirectory) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.distance(Point p0,Point p1,int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.worldExists(String worldId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getBehaviorState(int state) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getOverworldInstance() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.kickAccount(String account, String reason) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.doSave(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.archiveCurrentWorld(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.Saver(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.listSettlements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.findSettlementByPointOfInterest(Point pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causedByPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causeAsPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleModifierApplyEvent(String modifierId, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleStaminaChangeEvent(int staminaChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleHealthChangeEvent(int healthChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.attacked(Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isBeingAttacked() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getAttacker() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterNameForIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterType(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterId(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getCurrentPathTileIndex() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterItemUse.setCharacter(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId,Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.BaseBehavior.stateHasChanged(int previousState, int newState) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AtegnatosAggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.CycleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.DeathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.EvolveBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.FaceDirectionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.IdleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PerformActionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PlayerProximityBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.ReproduceBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.UseItemBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setTileset(Tileset tileset) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getTileset() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setPlaceableItemCache(PlaceableItemCache placeableItemCache) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getPlaceableItemCache(long instanceId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getX() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getY() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getW() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getH() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.intersects(Rect rect) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.wrap(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.set(int x, int y, short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.index(short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Location.equals(Location loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Object o) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Line l) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.flip() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Interpreter.listConsoleFiredCommands() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key, Point[] defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setPath(String key, Point[] value) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPathCompletion(float pathCompletion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPath(Point[] path) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand &amp;quot;pathCompletion&amp;quot; command property to the server-side API. This property consists of a real number bounded by 0.0 and 1.0 that indicates how far along the path the character is.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handlePostLoadInitialization() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getCurrentState() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getContentsRenderer() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getManifestationHandler() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.setPathCompletion(pathCompletion) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterIdentifier(characterOrIdentifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterType(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterNameForIdentifier(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getDisplayTotal(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getSectionHeight(el) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getForegroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getBackgroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(String repairId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isWhiteListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isBlackListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unBlackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unWhiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.kickAccount(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent (final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.BarracksPlot to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Road to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Street to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.TownPathingPostProcessor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Credit to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Attribution to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierWithActor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyAlteredReason to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.RepairItemInstance to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountWhitelist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountBlacklist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.modes.MeasureTileDistanceMode to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.BaseEnumeratedCausesMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.SpellCastMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierGainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierExpiredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierDispelledMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierAppliedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemAlteredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemRepairedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemBrokenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaRestoredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaDrainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerMovementMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerInstanceTransitionMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencySpentMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyEarnedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingReceivedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingDoneMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageTakenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageDealtMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.IContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.ArmorStandContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.SetPatrolBehavior to the codebase.&lt;br /&gt;
*Added net.lugdunon.math.NamedLocation to the server-side codebase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-08T15:59:01Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.currency.gsc&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedura&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*mods.json&lt;br /&gt;
*names.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/npcCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/terrain.dat&lt;br /&gt;
*instanceTemplates/BARRACKS/waypointCache.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*(Uncrafted) Small Limestone House Un-enterable.&lt;br /&gt;
*Statistics panel fails to render if no currency earned or spent.&lt;br /&gt;
*Damage taken statistic fails to render a 0 if no damage has been taken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.currency.gsc 0.0.4 -&amp;gt; 0.0.5&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.0 -&amp;gt; 0.1.1&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.13 -&amp;gt; 0.0.14&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*Added credits section to net.lugdunon.examples.mod.loginHandler mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.sprite mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio.music mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.elevation.editor.simple mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.state.character.movement.free mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.currency.gsc mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.environment mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.character mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.compendium mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.tui mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.defaults server.mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.procedural server.mod.json&lt;br /&gt;
*Fixed an issue with several items having invalid layer restriction values.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.command.ManageWeatherCommand that was allowing weather to persist when zoning if destination biome was null.&lt;br /&gt;
*Fixed width of the statistics label / value colums to allow for larger values.&lt;br /&gt;
*Fixed an issue with AssetManager.loadImage(assetKey,image,callback) loading null images.&lt;br /&gt;
*Fixed an issue with ssl when contacting auth and pls servers.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.TownSettlement.getSubLocationText(Point location) not being addressable at world creation time.&lt;br /&gt;
*Fixed some issues with location discrepancies in net.lugdunon.state.item.PlaceableItem*\nInstance.setLocation(Point location).&lt;br /&gt;
*Fixed an issue that was not non-player characters to not inform active behaviors that the behavior state has changed.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.character.behavior.BaseBehavior.getMostEsteemedFactionLevel(Character c) no returning expected results in some cases.&lt;br /&gt;
*Fixed some issues net.lugdunon.command.player.PlayerPathCommand's biome restriction code.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.player.PlayerMoveCommand not correctly updating the client-side weather state when transitioning into or away from a null biome.&lt;br /&gt;
*Fixed an issue with the windows clients failing to correctly update .jar files.&lt;br /&gt;
*New NPCDefs added will no longer accidentally share their instance data with other NPCDefs.&lt;br /&gt;
*Used the right UI element as the trigger for game.onShowHideLabel() in net.lugdunon.state.quest.progress.CountableItemBasedProgress.&lt;br /&gt;
*Fixed some perf issues with net.lugdunon.server.worldgen.procedural.post.ErosionPostProcessor.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.USE.STATION&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.SEARCH.SACKS&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed the file cleanup routine in net.lugdunon.server.worldgen.procedural.client.command.rest.PreviewImageClientCommandRESTHandler.&lt;br /&gt;
*Added a MEASURE_TILE_DISTANCE icon.&lt;br /&gt;
*Added a SIGN_WOOD_WALL icon.&lt;br /&gt;
*Added a ITEM_CONTAINER_STAND_ARMOR icon.&lt;br /&gt;
*Altered the traversal costs of most terrain layers to better predict pathing.&lt;br /&gt;
*Refactored the terrain layers in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json to rectify a bounding artifact issue with the lava biome.&lt;br /&gt;
*Added a net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot entry for towns in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardCaptainBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guard&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardCaptain&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a town barracks instance.&lt;br /&gt;
*Added a town barracks placeable item.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.noise.metazelda.generator.room.DefaultRoomGenerator now relies on the world's random seed to choose the dungeon's boss.&lt;br /&gt;
*Adjusted net.lugdunon.state.character.movement.free.FreeDirectionalMovement.NEXT_TO_IMPASSABLE_THRESHOLD from 0.0 to 0.2 to make movement next to walls and other impassable objects look more natural.&lt;br /&gt;
*Added support for negative currency values in net.lugdunon.currency.gsc.&lt;br /&gt;
*Added support for a redemption reason (ItemDefAndStackSize object) in net.lugdunon.currency.gsc.command.RedeemCoinCommand.&lt;br /&gt;
*Refactored weather fade in / out code to make it work as intended.&lt;br /&gt;
*Added server property worldgen.procedural.make.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols. Defaults to true.&lt;br /&gt;
*Added server property worldgen.procedural.make.provincial.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols and their surrounding settlements. Defaults to true.&lt;br /&gt;
*Changed net.lugdunon.server.worldgen.political.map.type etc entry in net.lugdunon.server.worldgen.procedural server.mod.json from class name to class name with props.&lt;br /&gt;
*Mod and property rows in the Alisanos Codex now show the proper cursor on mouseover.&lt;br /&gt;
*Credits are now supported via tooltip text in the Alisanos Codex for mods and server mods.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.versions.CodexRESTHandler now returns a credits array for each mod and server mod that defines one.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.consoleCommands.CodexRESTHandler now lists all console fired commands instead of just client-side console fired commands. Oopsy.&lt;br /&gt;
*Added game.getCurrencyInstance(value) to the client-side API. Shortcut to instantiate a currency object initialized with a given value.&lt;br /&gt;
*Added game.playerModifiers to represent the player's modifiers ui so that now game.modifiers can represent all of the available modifier definitions.&lt;br /&gt;
*Added relevant inventory subpanel css for the armor stand.&lt;br /&gt;
*Added a statistics header row for expanded statistics.&lt;br /&gt;
*Increased the large font option in the net.lugdunon.ui.sign.SignEditor from 42px to 48px.&lt;br /&gt;
*net.lugdunon.world.placeables.PIState.init() now instantiates the piState's content renderer is it exists and is valid.&lt;br /&gt;
*Refactored net.lugdunon.ui.inventory.sub.Container.renderContent(parent) to be more adaptable to future expansion of container types.&lt;br /&gt;
*Character path lengths are now represented as a short, up from a byte. This now allows path lengths of up to 2^16.&lt;br /&gt;
*The whitelist and blacklist APIs have been externalized from net.lugdunon.state.State and are now fully open for extension.&lt;br /&gt;
*Removed some misplaced init properties for net.lugdunon.item.ItemInstance in net.lugdunon.state.quest.progress.PlaceItem.&lt;br /&gt;
*net.lugdunon.state.quest.condition.completion.reward.CurrencyReward now provides a reason in the form of a net.lugdunon.state.quest.Quest instance.&lt;br /&gt;
*Added whitelist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added blacklist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added credits section to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*net.lugdunon.state.metric.Metric now uses getDisplayTotal(data) to render totals in the statistics section of the achievements dialog.&lt;br /&gt;
*A container's contents can now inform its physical appearance in the game world via the net.lugdunon.state.item.container.IContentsRenderer API, assigned to an item definition at props.states.[stateId].contentsRenderer.&lt;br /&gt;
*NPC and PC metric categories are now stored in &amp;quot;npcs&amp;quot; and &amp;quot;pcs&amp;quot; objects in order to provide a little more flexibility.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.getGroundedLocation() is now callable at world creation time.&lt;br /&gt;
*Calling net.lugdunon.state.item.PlaceableItemCache.deletePlaceableItemReference() at world creation time will no longer cause an unrecoverable error.&lt;br /&gt;
*net.lugdunon.state.item.manifestation.IManifestationHandler now supports layered foreground and background images.&lt;br /&gt;
*net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy's drop chance now relies on the world's random seed.&lt;br /&gt;
*The net.lugdunon.state.item.action.update.SpawnUpdateAction's respawn location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.state.character.behavior.PathBehavior now relies on the world's random seed to find a new path.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.buybackItem(NonPlayerCharacter npc, int si) now provides a reason in the form of a net.lugdunon.state.vendor.VendoredItem instance.&lt;br /&gt;
*An instance of net.lugdunon.state.character.Character will forget its attacker after 15 seconds.&lt;br /&gt;
*net.lugdunon.state.character.modifier.BaseModifier.renderTooltip() will now list the name of the applier, regardless of the character type (PC, NPC).&lt;br /&gt;
*net.lugdunon.state.character.behavior.AggroBehavior now supports the ability for an NPC to assist others of the same faction that are currently being attacked within a specified radius.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain(long instanceId, short[] terrain, byte[] elevation, byte[] biome, Tileset t, JSONObject instanceConfig, Object seed) now properly inits the terrain rendering strategy object to allow for a more robust procedural generation implementation.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.ITerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.AdjacentTileTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.Base16LayerTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.Chunk access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator implementations should now support the JSONObjectSerializable as well.&lt;br /&gt;
*The net.lugdunon.world.instance.spawner.MineshaftInstanceSpawner's return instance portal location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.boundedRandomValue(int min, int max) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.valueFromRandomDefinition(JSONObject o) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable no properly implements toJSONObject().&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence now supports an indent corners mode.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.TerrainAlteration now supports a new mode: MODE_SET. Set mode will simply overwrite the value at the specified terrain index with the provided value.&lt;br /&gt;
*If the world to populate is empty or doesn't exist and the server property 'populate.world.from.archive' resolves to a valid .lug archive, then net.lugdunon.state.World.init() will attempt to populate the world from the specified .lug archive.&lt;br /&gt;
*If the server property 'archive.on.world.creation' is set (to the name of the desired archive) then upon the completion of the world creation process, the world will be saved to the specified archive file.&lt;br /&gt;
*The active world generator now holds the world configuration map, and can still be accessed by net.lugdunon.state.World.getWorldConfig().&lt;br /&gt;
*net.lugdunon.state.vendor.slot.SimpleVendorSlot.handlePurchase(PlayerCharacter pc, NonPlayerCharacter npc) now provides a reason for the purchase (item purchased as an instance of net.lugdunon.state.item.ItemDefinitions.ItemDefAndStackSize);&lt;br /&gt;
*Added default whitelist and blacklist implementation mods to the build process.&lt;br /&gt;
*The tileset is now accessible during world generation.&lt;br /&gt;
*The placeable item cache is now accessible during world generation.&lt;br /&gt;
*Refactored net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to be more robust in in its search for the proper world.cfg file.&lt;br /&gt;
*net.lugdunon.math.voronoi.Voronoi.getCellForPoint(Point origin) now constructs the polygon using the new net.lugdunon.math.Line object instead of net.lugdunon.math.Point arrays.&lt;br /&gt;
*net.lugdunon.command.vendor.RepairItemCommand now provides a reason (repairs: List&amp;lt;RepairItemInstance&amp;gt;) for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.vendor.SellItemToVendorCommand now provides a reason for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.spell.DirecDamageCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirecHealCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirectInterruptCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierApplyCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierDispelCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now correctly handles biome transitions.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now relays path completion to the client.&lt;br /&gt;
*net.lugdunon.command.play.TillEarthCommand now relies on the world's random seed to determine whether or now to generate a turf item.&lt;br /&gt;
*net.lugdunon.command.play.ThrowPenguinEggCommand now relies on the world's random seed to determine when to spawn a penguin from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.ThrowEggCommand now relies on the world's random seed to determine when to spawn a chick from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.SetHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.ReturnHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.PlaceableStateChangeCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.ALTERED&amp;quot; metric update if a character changes the state of a placeable item instance.&lt;br /&gt;
*net.lugdunon.command.play.OpenAnimalBarrelCommand now relies on the world's random seed to determine when to release an animal from a barrel toss.&lt;br /&gt;
*net.lugdunon.command.play.InstanceTransitionCommand now invokes a &amp;quot;CORE.METRIC.GENERAL.PLAYER.INSTANCE.TRANSITION&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.DamagePlaceableCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.DAMAGED&amp;quot; metric update.&lt;br /&gt;
*Refactored net.lugdunon.command.inventory.MoveInventoryItemCommand logic to account for armor stands.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemDurabilityUpdateCommand now invokes a &amp;quot;CORE.METRIC.ITEM.DAMAGED&amp;quot; or &amp;quot;CORE.METRIC.ITEM.REPAIRED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemBrokenCommand now invokes a &amp;quot;CORE.METRIC.ITEM.BROKEN&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.core.edit.UpdateUserDefinedDataCommand now supports large strings (allows for data over 2^16 bytes in length).&lt;br /&gt;
*net.lugdunon.command.edit.PlaceItemCommand now relies on the world's random seed to choose from which item to place from the tool definition's list of available placeable items.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports rendering a political map.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now supports the inclusion of an &amp;quot;archive.name&amp;quot; property. If provided, upon save completion, the world's data will be written to a .lug archive using the &amp;quot;archive.name&amp;quot; property.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now falls back to an immediate save if the interval value is invalid or missing.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.KickCommand now supports a &amp;quot;reason&amp;quot; property, used to optionally record a reason for kicking the player.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now invokes a &amp;quot;CORE.METRIC.CURRENCY.EARNED&amp;quot; or &amp;quot;CORE.METRIC.CURRENCY.SPENT&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now supports a currency altered &amp;quot;reason&amp;quot; property.&lt;br /&gt;
*The standalone client's standaloneServer.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone servers' server.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone client will now issue an error if a world can not be removed.&lt;br /&gt;
*ITEM.CULTURE now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*ITEM.CULTURE.RICH now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR inventory item to items.json.&lt;br /&gt;
*Added CONTAINER.STAND.ARMOR placeable item to items.json.&lt;br /&gt;
*Added BAR.SMALL placeable item to items.json.&lt;br /&gt;
*Added SIGN.WOOD.WALL inventory item to items.json.&lt;br /&gt;
*Added SIGN.WOODEN.WALL placeable item to items.json.&lt;br /&gt;
*Added MEASURE_TILE_DISTANCE edit mode tool item to items.json.&lt;br /&gt;
*HOUSE.MEDIUM.BRICK.QUAINT renamed from &amp;quot;Small Brick House&amp;quot; to &amp;quot;Medium Brick House&amp;quot;.&lt;br /&gt;
*Added thin waterfalls for each of the 4 cardinal directions.&lt;br /&gt;
*Added a STREET.PREFIX category to names.json.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR carpentry recipe to recipes.json.&lt;br /&gt;
*net.lugdunon.world.defaults.character.modifier.StaminaOverTimeModifier correctly handle valueMode and school during object serialization.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.GAINED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.APPLIED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.LOST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.DISPELLED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.awardLoot(PlayerCharacter killer) now relies on the world's random seed when awarding loot.&lt;br /&gt;
*Added archive.on.world.creation server property.&lt;br /&gt;
*Added populate.world.from.archive server property.&lt;br /&gt;
*Added account.whitelist.external.check.interval world property.&lt;br /&gt;
*Added account.blacklist.external.check.interval world property.&lt;br /&gt;
*Added account.whitelist.denied.message world property.&lt;br /&gt;
*Added account.blacklist.denied.message world property.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(Point point) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getCraftingStation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTrade() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesman() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesmanGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getStreet(int orientation, int streetNumber) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreets() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsWithOrientation(int orientation) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsAtLocations(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(Point p) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(String plotId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(Plot plot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmer() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmerGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.getUserDefinedData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence(double chance, String placeable, String gatePlaceable, String[] gateStates, int[][] gateLocs, int indentCorners) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation(JSONArray pointsOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath,boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToJar(File source, JarOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToArchive(File source, ZipOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.extractArchive(String archiveURLOrFile, String destinationDirectory) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.distance(Point p0,Point p1,int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.worldExists(String worldId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getBehaviorState(int state) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getOverworldInstance() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.kickAccount(String account, String reason) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.doSave(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.archiveCurrentWorld(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.Saver(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.listSettlements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.findSettlementByPointOfInterest(Point pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causedByPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causeAsPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleModifierApplyEvent(String modifierId, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleStaminaChangeEvent(int staminaChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleHealthChangeEvent(int healthChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.attacked(Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isBeingAttacked() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getAttacker() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterNameForIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterType(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterId(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getCurrentPathTileIndex() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterItemUse.setCharacter(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId,Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.BaseBehavior.stateHasChanged(int previousState, int newState) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AtegnatosAggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.CycleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.DeathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.EvolveBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.FaceDirectionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.IdleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PerformActionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PlayerProximityBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.ReproduceBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.UseItemBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setTileset(Tileset tileset) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getTileset() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setPlaceableItemCache(PlaceableItemCache placeableItemCache) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getPlaceableItemCache(long instanceId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getX() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getY() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getW() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getH() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.intersects(Rect rect) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.wrap(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.set(int x, int y, short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.index(short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Location.equals(Location loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Object o) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Line l) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.flip() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Interpreter.listConsoleFiredCommands() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key, Point[] defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setPath(String key, Point[] value) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPathCompletion(float pathCompletion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPath(Point[] path) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand &amp;quot;pathCompletion&amp;quot; command property to the server-side API. This property consists of a real number bounded by 0.0 and 1.0 that indicates how far along the path the character is.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handlePostLoadInitialization() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getCurrentState() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getContentsRenderer() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getManifestationHandler() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.setPathCompletion(pathCompletion) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterIdentifier(characterOrIdentifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterType(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterNameForIdentifier(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getDisplayTotal(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getSectionHeight(el) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getForegroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getBackgroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(String repairId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isWhiteListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isBlackListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unBlackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unWhiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.kickAccount(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent (final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.BarracksPlot to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Road to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Street to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.TownPathingPostProcessor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Credit to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Attribution to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierWithActor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyAlteredReason to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.RepairItemInstance to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountWhitelist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountBlacklist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.modes.MeasureTileDistanceMode to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.BaseEnumeratedCausesMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.SpellCastMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierGainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierExpiredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierDispelledMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierAppliedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemAlteredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemRepairedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemBrokenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaRestoredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaDrainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerMovementMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerInstanceTransitionMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencySpentMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyEarnedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingReceivedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingDoneMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageTakenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageDealtMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.IContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.ArmorStandContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.SetPatrolBehavior to the codebase.&lt;br /&gt;
*Added net.lugdunon.math.NamedLocation to the server-side codebase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-08T15:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.currency.gsc&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedura&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*mods.json&lt;br /&gt;
*names.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/npcCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/terrain.dat&lt;br /&gt;
*instanceTemplates/BARRACKS/waypointCache.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*(Uncrafted) Small Limestone House Un-enterable.&lt;br /&gt;
*Statistics panel fails to render if no currency earned or spent.&lt;br /&gt;
*Damage taken statistic fails to render a 0 if no damage has been taken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.currency.gsc 0.0.4 -&amp;gt; 0.0.5&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.0 -&amp;gt; 0.1.1&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.13 -&amp;gt; 0.0.14&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*Added credits section to net.lugdunon.examples.mod.loginHandler mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.sprite mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio.music mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.elevation.editor.simple mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.state.character.movement.free mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.currency.gsc mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.environment mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.character mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.compendium mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.tui mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.defaults server.mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.procedural server.mod.json&lt;br /&gt;
*Fixed an issue with several items having invalid layer restriction values.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.command.ManageWeatherCommand that was allowing weather to persist when zoning if destination biome was null.&lt;br /&gt;
*Fixed width of the statistics label / value colums to allow for larger values.&lt;br /&gt;
*Fixed an issue with AssetManager.loadImage(assetKey,image,callback) loading null images.&lt;br /&gt;
*Fixed an issue with ssl when contacting auth and pls servers.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.TownSettlement.getSubLocationText(Point location) not being addressable at world creation time.&lt;br /&gt;
*Fixed some issues with location discrepancies in net.lugdunon.state.item.PlaceableItem*\nInstance.setLocation(Point location).&lt;br /&gt;
*Fixed an issue that was not non-player characters to not inform active behaviors that the behavior state has changed.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.character.behavior.BaseBehavior.getMostEsteemedFactionLevel(Character c) no returning expected results in some cases.&lt;br /&gt;
*Fixed some issues net.lugdunon.command.player.PlayerPathCommand's biome restriction code.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.player.PlayerMoveCommand not correctly updating the client-side weather state when transitioning into or away from a null biome.&lt;br /&gt;
*Fixed an issue with the windows clients failing to correctly update .jar files.&lt;br /&gt;
*New NPCDefs added will no longer accidentally share their instance data with other NPCDefs.&lt;br /&gt;
*Used the right UI element as the trigger for game.onShowHideLabel() in net.lugdunon.state.quest.progress.CountableItemBasedProgress.&lt;br /&gt;
*Fixed some perf issues with net.lugdunon.server.worldgen.procedural.post.ErosionPostProcessor.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.USE.STATION&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.SEARCH.SACKS&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed the file cleanup routine in net.lugdunon.server.worldgen.procedural.client.command.rest.PreviewImageClientCommandRESTHandler.&lt;br /&gt;
*Added a MEASURE_TILE_DISTANCE icon.&lt;br /&gt;
*Added a SIGN_WOOD_WALL icon.&lt;br /&gt;
*Added a ITEM_CONTAINER_STAND_ARMOR icon.&lt;br /&gt;
*Altered the traversal costs of most terrain layers to better predict pathing.&lt;br /&gt;
*Refactored the terrain layers in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json to rectify a bounding artifact issue with the lava biome.&lt;br /&gt;
*Added a net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot entry for towns in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardCaptainBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guard&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardCaptain&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a town barracks instance.&lt;br /&gt;
*Added a town barracks placeable item.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.noise.metazelda.generator.room.DefaultRoomGenerator now relies on the world's random seed to choose the dungeon's boss.&lt;br /&gt;
*Adjusted net.lugdunon.state.character.movement.free.FreeDirectionalMovement.NEXT_TO_IMPASSABLE_THRESHOLD from 0.0 to 0.2 to make movement next to walls and other impassable objects look more natural.&lt;br /&gt;
*Added support for negative currency values in net.lugdunon.currency.gsc.&lt;br /&gt;
*Added support for a redemption reason (ItemDefAndStackSize object) in net.lugdunon.currency.gsc.command.RedeemCoinCommand.&lt;br /&gt;
*Refactored weather fade in / out code to make it work as intended.&lt;br /&gt;
*Added server property worldgen.procedural.make.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols. Defaults to true.&lt;br /&gt;
*Added server property worldgen.procedural.make.provincial.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols and their surrounding settlements. Defaults to true.&lt;br /&gt;
*Changed net.lugdunon.server.worldgen.political.map.type etc entry in net.lugdunon.server.worldgen.procedural server.mod.json from class name to class name with props.&lt;br /&gt;
*Mod and property rows in the Alisanos Codex now show the proper cursor on mouseover.&lt;br /&gt;
*Credits are now supported via tooltip text in the Alisanos Codex for mods and server mods.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.versions.CodexRESTHandler now returns a credits array for each mod and server mod that defines one.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.consoleCommands.CodexRESTHandler now lists all console fired commands instead of just client-side console fired commands. Oopsy.&lt;br /&gt;
*Added game.getCurrencyInstance(value) to the client-side API. Shortcut to instantiate a currency object initialized with a given value.&lt;br /&gt;
*Added game.playerModifiers to represent the player's modifiers ui so that now game.modifiers can represent all of the available modifier definitions.&lt;br /&gt;
*Added relevant inventory subpanel css for the armor stand.&lt;br /&gt;
*Added a statistics header row for expanded statistics.&lt;br /&gt;
*Increased the large font option in the net.lugdunon.ui.sign.SignEditor from 42px to 48px.&lt;br /&gt;
*net.lugdunon.world.placeables.PIState.init() now instantiates the piState's content renderer is it exists and is valid.&lt;br /&gt;
*Refactored net.lugdunon.ui.inventory.sub.Container.renderContent(parent) to be more adaptable to future expansion of container types.&lt;br /&gt;
*Character path lengths are now represented as a short, up from a byte. This now allows path lengths of up to 2^16.&lt;br /&gt;
*The whitelist and blacklist APIs have been externalized from net.lugdunon.state.State and are now fully open for extension.&lt;br /&gt;
*Removed some misplaced init properties for net.lugdunon.item.ItemInstance in net.lugdunon.state.quest.progress.PlaceItem.&lt;br /&gt;
*net.lugdunon.state.quest.condition.completion.reward.CurrencyReward now provides a reason in the form of a net.lugdunon.state.quest.Quest instance.&lt;br /&gt;
*Added whitelist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added blacklist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added credits section to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*net.lugdunon.state.metric.Metric now uses getDisplayTotal(data) to render totals in the statistics section of the achievements dialog.&lt;br /&gt;
*A container's contents can now inform its physical appearance in the game world via the net.lugdunon.state.item.container.IContentsRenderer API, assigned to an item definition at props.states.[stateId].contentsRenderer.&lt;br /&gt;
*NPC and PC metric categories are now stored in &amp;quot;npcs&amp;quot; and &amp;quot;pcs&amp;quot; objects in order to provide a little more flexibility.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.getGroundedLocation() is now callable at world creation time.&lt;br /&gt;
*Calling net.lugdunon.state.item.PlaceableItemCache.deletePlaceableItemReference() at world creation time will no longer cause an unrecoverable error.&lt;br /&gt;
*net.lugdunon.state.item.manifestation.IManifestationHandler now supports layered foreground and background images.&lt;br /&gt;
*net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy's drop chance now relies on the world's random seed.&lt;br /&gt;
*The net.lugdunon.state.item.action.update.SpawnUpdateAction's respawn location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.state.character.behavior.PathBehavior now relies on the world's random seed to find a new path.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.buybackItem(NonPlayerCharacter npc, int si) now provides a reason in the form of a net.lugdunon.state.vendor.VendoredItem instance.&lt;br /&gt;
*An instance of net.lugdunon.state.character.Character will forget its attacker after 15 seconds.&lt;br /&gt;
*net.lugdunon.state.character.modifier.BaseModifier.renderTooltip() will now list the name of the applier, regardless of the character type (PC, NPC).&lt;br /&gt;
*net.lugdunon.state.character.behavior.AggroBehavior now supports the ability for an NPC to assist others of the same faction that are currently being attacked within a specified radius.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain(long instanceId, short[] terrain, byte[] elevation, byte[] biome, Tileset t, JSONObject instanceConfig, Object seed) now properly inits the terrain rendering strategy object to allow for a more robust procedural generation implementation.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.ITerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.AdjacentTileTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.Base16LayerTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.Chunk access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator implementations should now support the JSONObjectSerializable as well.&lt;br /&gt;
*The net.lugdunon.world.instance.spawner.MineshaftInstanceSpawner's return instance portal location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.boundedRandomValue(int min, int max) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.valueFromRandomDefinition(JSONObject o) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable no properly implements toJSONObject().&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence now supports an indent corners mode.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.TerrainAlteration now supports a new mode: MODE_SET. Set mode will simply overwrite the value at the specified terrain index with the provided value.&lt;br /&gt;
*If the world to populate is empty or doesn't exist and the server property 'populate.world.from.archive' resolves to a valid .lug archive, then net.lugdunon.state.World.init() will attempt to populate the world from the specified .lug archive.&lt;br /&gt;
*If the server property 'archive.on.world.creation' is set (to the name of the desired archive) then upon the completion of the world creation process, the world will be saved to the specified archive file.&lt;br /&gt;
*The active world generator now holds the world configuration map, and can still be accessed by net.lugdunon.state.World.getWorldConfig().&lt;br /&gt;
*net.lugdunon.state.vendor.slot.SimpleVendorSlot.handlePurchase(PlayerCharacter pc, NonPlayerCharacter npc) now provides a reason for the purchase (item purchased as an instance of net.lugdunon.state.item.ItemDefinitions.ItemDefAndStackSize);&lt;br /&gt;
*Added default whitelist and blacklist implementation mods to the build process.&lt;br /&gt;
*The tileset is now accessible during world generation.&lt;br /&gt;
*The placeable item cache is now accessible during world generation.&lt;br /&gt;
*Refactored net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to be more robust in in its search for the proper world.cfg file.&lt;br /&gt;
*net.lugdunon.math.voronoi.Voronoi.getCellForPoint(Point origin) now constructs the polygon using the new net.lugdunon.math.Line object instead of net.lugdunon.math.Point arrays.&lt;br /&gt;
*net.lugdunon.command.vendor.RepairItemCommand now provides a reason (repairs: List&amp;lt;RepairItemInstance&amp;gt;) for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.vendor.SellItemToVendorCommand now provides a reason for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.spell.DirecDamageCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirecHealCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirectInterruptCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierApplyCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierDispelCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now correctly handles biome transitions.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now relays path completion to the client.&lt;br /&gt;
*net.lugdunon.command.play.TillEarthCommand now relies on the world's random seed to determine whether or now to generate a turf item.&lt;br /&gt;
*net.lugdunon.command.play.ThrowPenguinEggCommand now relies on the world's random seed to determine when to spawn a penguin from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.ThrowEggCommand now relies on the world's random seed to determine when to spawn a chick from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.SetHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.ReturnHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.PlaceableStateChangeCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.ALTERED&amp;quot; metric update if a character changes the state of a placeable item instance.&lt;br /&gt;
*net.lugdunon.command.play.OpenAnimalBarrelCommand now relies on the world's random seed to determine when to release an animal from a barrel toss.&lt;br /&gt;
*net.lugdunon.command.play.InstanceTransitionCommand now invokes a &amp;quot;CORE.METRIC.GENERAL.PLAYER.INSTANCE.TRANSITION&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.DamagePlaceableCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.DAMAGED&amp;quot; metric update.&lt;br /&gt;
*Refactored net.lugdunon.command.inventory.MoveInventoryItemCommand logic to account for armor stands.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemDurabilityUpdateCommand now invokes a &amp;quot;CORE.METRIC.ITEM.DAMAGED&amp;quot; or &amp;quot;CORE.METRIC.ITEM.REPAIRED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemBrokenCommand now invokes a &amp;quot;CORE.METRIC.ITEM.BROKEN&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.core.edit.UpdateUserDefinedDataCommand now supports large strings (allows for data over 2^16 bytes in length).&lt;br /&gt;
*net.lugdunon.command.edit.PlaceItemCommand now relies on the world's random seed to choose from which item to place from the tool definition's list of available placeable items.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports rendering a political map.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now supports the inclusion of an &amp;quot;archive.name&amp;quot; property. If provided, upon save completion, the world's data will be written to a .lug archive using the &amp;quot;archive.name&amp;quot; property.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now falls back to an immediate save if the interval value is invalid or missing.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.KickCommand now supports a &amp;quot;reason&amp;quot; property, used to optionally record a reason for kicking the player.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now invokes a &amp;quot;CORE.METRIC.CURRENCY.EARNED&amp;quot; or &amp;quot;CORE.METRIC.CURRENCY.SPENT&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now supports a currency altered &amp;quot;reason&amp;quot; property.&lt;br /&gt;
*The standalone client's standaloneServer.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone servers' server.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone client will now issue an error if a world can not be removed.&lt;br /&gt;
*ITEM.CULTURE now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*ITEM.CULTURE.RICH now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR inventory item to items.json.&lt;br /&gt;
*Added CONTAINER.STAND.ARMOR placeable item to items.json.&lt;br /&gt;
*Added BAR.SMALL placeable item to items.json.&lt;br /&gt;
*Added SIGN.WOOD.WALL inventory item to items.json.&lt;br /&gt;
*Added SIGN.WOODEN.WALL placeable item to items.json.&lt;br /&gt;
*Added MEASURE_TILE_DISTANCE edit mode tool item to items.json.&lt;br /&gt;
*HOUSE.MEDIUM.BRICK.QUAINT renamed from &amp;quot;Small Brick House&amp;quot; to &amp;quot;Medium Brick House&amp;quot;.&lt;br /&gt;
*Added thin waterfalls for each of the 4 cardinal directions.&lt;br /&gt;
*Added a STREET.PREFIX category to names.json.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR carpentry recipe to recipes.json.&lt;br /&gt;
*net.lugdunon.world.defaults.character.modifier.StaminaOverTimeModifier correctly handle valueMode and school during object serialization.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.GAINED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.APPLIED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.LOST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.DISPELLED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.awardLoot(PlayerCharacter killer) now relies on the world's random seed when awarding loot.&lt;br /&gt;
*Added archive.on.world.creation server property.&lt;br /&gt;
*Added populate.world.from.archive server property.&lt;br /&gt;
*Added account.whitelist.external.check.interval world property.&lt;br /&gt;
*Added account.blacklist.external.check.interval world property.&lt;br /&gt;
*Added account.whitelist.denied.message world property.&lt;br /&gt;
*Added account.blacklist.denied.message world property.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(Point point) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getCraftingStation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTrade() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesman() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesmanGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getStreet(int orientation, int streetNumber) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreets() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsWithOrientation(int orientation) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsAtLocations(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(Point p) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(String plotId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(Plot plot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmer() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmerGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.getUserDefinedData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence(double chance, String placeable, String gatePlaceable, String[] gateStates, int[][] gateLocs, int indentCorners) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation(JSONArray pointsOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath,boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToJar(File source, JarOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToArchive(File source, ZipOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.extractArchive(String archiveURLOrFile, String destinationDirectory) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.distance(Point p0,Point p1,int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.worldExists(String worldId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getBehaviorState(int state) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getOverworldInstance() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.kickAccount(String account, String reason) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.doSave(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.archiveCurrentWorld(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.Saver(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.listSettlements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.findSettlementByPointOfInterest(Point pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causedByPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causeAsPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleModifierApplyEvent(String modifierId, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleStaminaChangeEvent(int staminaChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleHealthChangeEvent(int healthChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.attacked(Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isBeingAttacked() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getAttacker() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterNameForIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterType(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterId(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getCurrentPathTileIndex() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterItemUse.setCharacter(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId,Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.BaseBehavior.stateHasChanged(int previousState, int newState) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AtegnatosAggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.CycleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.DeathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.EvolveBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.FaceDirectionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.IdleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PerformActionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PlayerProximityBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.ReproduceBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.UseItemBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setTileset(Tileset tileset) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getTileset() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setPlaceableItemCache(PlaceableItemCache placeableItemCache) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getPlaceableItemCache(long instanceId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getX() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getY() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getW() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getH() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.intersects(Rect rect) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.wrap(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.set(int x, int y, short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.index(short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Location.equals(Location loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Object o) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Line l) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.flip() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Interpreter.listConsoleFiredCommands() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key, Point[] defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setPath(String key, Point[] value) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPathCompletion(float pathCompletion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPath(Point[] path) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand &amp;quot;pathCompletion&amp;quot; command property to the server-side API. This property consists of a real number bounded by 0.0 and 1.0 that indicates how far along the path the character is.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handlePostLoadInitialization() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getCurrentState() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getContentsRenderer() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getManifestationHandler() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.setPathCompletion(pathCompletion) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterIdentifier(characterOrIdentifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterType(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterNameForIdentifier(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getDisplayTotal(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getSectionHeight(el) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getForegroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getBackgroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(String repairId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isWhiteListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isBlackListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unBlackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unWhiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.kickAccount(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent (final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.BarracksPlot to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Road to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Street to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.TownPathingPostProcessor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Credit to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Attribution to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierWithActor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyAlteredReason to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.RepairItemInstance to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountWhitelist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountBlacklist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.modes.MeasureTileDistanceMode to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.BaseEnumeratedCausesMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.SpellCastMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierGainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierExpiredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierDispelledMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierAppliedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemAlteredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemRepairedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemBrokenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaRestoredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaDrainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerMovementMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerInstanceTransitionMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencySpentMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyEarnedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingReceivedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingDoneMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageTakenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageDealtMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.IContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.ArmorStandContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.SetPatrolBehavior to the codebase.&lt;br /&gt;
*Added net.lugdunon.math.NamedLocation to the server-side codebase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-08T15:48:28Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.clover.sprite&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.currency.gsc&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedura&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*behaviors.json&lt;br /&gt;
*behaviorStates.json&lt;br /&gt;
*itemBaseCosts.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*mods.json&lt;br /&gt;
*names.json&lt;br /&gt;
*proceduralNpcs.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/instance.json&lt;br /&gt;
*instanceTemplates/BARRACKS/npcCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/BARRACKS/terrain.dat&lt;br /&gt;
*instanceTemplates/BARRACKS/waypointCache.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Known Issues:&lt;br /&gt;
*(Uncrafted) Small Limestone House Un-enterable.&lt;br /&gt;
*Statistics panel fails to render if no currency earned or spent.&lt;br /&gt;
*Damage taken statistic fails to render a 0 if no damage has been taken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*net.lugdunon.examples.mod.loginHandler 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.clover.sprite 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.world.defaults.audio.music 0.0.1 -&amp;gt; 0.0.2&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.3 -&amp;gt; 0.0.4&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*net.lugdunon.currency.gsc 0.0.4 -&amp;gt; 0.0.5&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.1.0 -&amp;gt; 0.1.1&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.6 -&amp;gt; 0.0.7&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.1 -&amp;gt; 0.1.2&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.13 -&amp;gt; 0.0.14&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.7 -&amp;gt; 0.0.8&lt;br /&gt;
*Added credits section to net.lugdunon.examples.mod.loginHandler mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.sprite mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.audio.music mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.elevation.editor.simple mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.state.character.movement.free mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.currency.gsc mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.environment mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.character mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.defaults.compendium mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.world.clover.tui mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.defaults server.mod.json&lt;br /&gt;
*Added credits section to net.lugdunon.server.worldgen.procedural server.mod.json&lt;br /&gt;
*Fixed an issue with several items having invalid layer restriction values.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.command.ManageWeatherCommand that was allowing weather to persist when zoning if destination biome was null.&lt;br /&gt;
*Fixed width of the statistics label / value colums to allow for larger values.&lt;br /&gt;
*Fixed an issue with AssetManager.loadImage(assetKey,image,callback) loading null images.&lt;br /&gt;
*Fixed an issue with ssl when contacting auth and pls servers.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.biome.settlement.settlements.TownSettlement.getSubLocationText(Point location) not being addressable at world creation time.&lt;br /&gt;
*Fixed some issues with location discrepancies in net.lugdunon.state.item.PlaceableItem*\nInstance.setLocation(Point location).&lt;br /&gt;
*Fixed an issue that was not non-player characters to not inform active behaviors that the behavior state has changed.&lt;br /&gt;
*Fixed an issue with net.lugdunon.state.character.behavior.BaseBehavior.getMostEsteemedFactionLevel(Character c) no returning expected results in some cases.&lt;br /&gt;
*Fixed some issues net.lugdunon.command.player.PlayerPathCommand's biome restriction code.&lt;br /&gt;
*Fixed an issue with net.lugdunon.command.player.PlayerMoveCommand not correctly updating the client-side weather state when transitioning into or away from a null biome.&lt;br /&gt;
*Fixed an issue with the windows clients failing to correctly update .jar files.&lt;br /&gt;
*New NPCDefs added will no longer accidentally share their instance data with other NPCDefs.&lt;br /&gt;
*Used the right UI element as the trigger for game.onShowHideLabel() in net.lugdunon.state.quest.progress.CountableItemBasedProgress.&lt;br /&gt;
*Fixed some perf issues with net.lugdunon.server.worldgen.procedural.post.ErosionPostProcessor.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.USE.STATION&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed an item index issue with the &amp;quot;tradesman&amp;quot; behavior set's &amp;quot;CORE.TRADESMAN.SEARCH.SACKS&amp;quot; state in proceduralNpcs.json.&lt;br /&gt;
*Fixed the file cleanup routine in net.lugdunon.server.worldgen.procedural.client.command.rest.PreviewImageClientCommandRESTHandler.&lt;br /&gt;
*Added a MEASURE_TILE_DISTANCE icon.&lt;br /&gt;
*Added a SIGN_WOOD_WALL icon.&lt;br /&gt;
*Added a ITEM_CONTAINER_STAND_ARMOR icon.&lt;br /&gt;
*Altered the traversal costs of most terrain layers to better predict pathing.&lt;br /&gt;
*Refactored the terrain layers in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json to rectify a bounding artifact issue with the lava biome.&lt;br /&gt;
*Added a net.lugdunon.world.biome.settlement.settlements.generators.town.BarracksPlot entry for towns in the net.lugdunon.server.worldgen.procedural's etc/instances/0/instance.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;patrollingGuardCaptainBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardBase&amp;quot; behavior set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guard&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a &amp;quot;guardCaptain&amp;quot; inventory set in proceduralNpcs.json.&lt;br /&gt;
*Added a town barracks instance.&lt;br /&gt;
*Added a town barracks placeable item.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural.noise.metazelda.generator.room.DefaultRoomGenerator now relies on the world's random seed to choose the dungeon's boss.&lt;br /&gt;
*Adjusted net.lugdunon.state.character.movement.free.FreeDirectionalMovement.NEXT_TO_IMPASSABLE_THRESHOLD from 0.0 to 0.2 to make movement next to walls and other impassable objects look more natural.&lt;br /&gt;
*Added support for negative currency values in net.lugdunon.currency.gsc.&lt;br /&gt;
*Added support for a redemption reason (ItemDefAndStackSize object) in net.lugdunon.currency.gsc.command.RedeemCoinCommand.&lt;br /&gt;
*Refactored weather fade in / out code to make it work as intended.&lt;br /&gt;
*Added server property worldgen.procedural.make.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols. Defaults to true.&lt;br /&gt;
*Added server property worldgen.procedural.make.provincial.roads to net.lugdunon.server.worldgen.procedural server.mod.json. This property toggles the creation of roads between province capitols and their surrounding settlements. Defaults to true.&lt;br /&gt;
*Changed net.lugdunon.server.worldgen.political.map.type etc entry in net.lugdunon.server.worldgen.procedural server.mod.json from class name to class name with props.&lt;br /&gt;
*Mod and property rows in the Alisanos Codex now show the proper cursor on mouseover.&lt;br /&gt;
*Credits are now supported via tooltip text in the Alisanos Codex for mods and server mods.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.versions.CodexRESTHandler now returns a credits array for each mod and server mod that defines one.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium.consoleCommands.CodexRESTHandler now lists all console fired commands instead of just client-side console fired commands. Oopsy.&lt;br /&gt;
*Added game.getCurrencyInstance(value) to the client-side API. Shortcut to instantiate a currency object initialized with a given value.&lt;br /&gt;
*Added game.playerModifiers to represent the player's modifiers ui so that now game.modifiers can represent all of the available modifier definitions.&lt;br /&gt;
*Added relevant inventory subpanel css for the armor stand.&lt;br /&gt;
*Added a statistics header row for expanded statistics.&lt;br /&gt;
*Increased the large font option in the net.lugdunon.ui.sign.SignEditor from 42px to 48px.&lt;br /&gt;
*net.lugdunon.world.placeables.PIState.init() now instantiates the piState's content renderer is it exists and is valid.&lt;br /&gt;
*Refactored net.lugdunon.ui.inventory.sub.Container.renderContent(parent) to be more adaptable to future expansion of container types.&lt;br /&gt;
*Character path lengths are now represented as a short, up from a byte. This now allows path lengths of up to 2^16.&lt;br /&gt;
*The whitelist and blacklist APIs have been externalized from net.lugdunon.state.State and are now fully open for extension.&lt;br /&gt;
*Removed some misplaced init properties for net.lugdunon.item.ItemInstance in net.lugdunon.state.quest.progress.PlaceItem.&lt;br /&gt;
*net.lugdunon.state.quest.condition.completion.reward.CurrencyReward now provides a reason in the form of a net.lugdunon.state.quest.Quest instance.&lt;br /&gt;
*Added whitelist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added blacklist API extension support to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*Added credits section to net.lugdunon.state.mod.Mod.&lt;br /&gt;
*net.lugdunon.state.metric.Metric now uses getDisplayTotal(data) to render totals in the statistics section of the achievements dialog.&lt;br /&gt;
*A container's contents can now inform its physical appearance in the game world via the net.lugdunon.state.item.container.IContentsRenderer API, assigned to an item definition at props.states.[stateId].contentsRenderer.&lt;br /&gt;
*NPC and PC metric categories are now stored in &amp;quot;npcs&amp;quot; and &amp;quot;pcs&amp;quot; objects in order to provide a little more flexibility.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.getGroundedLocation() is now callable at world creation time.&lt;br /&gt;
*Calling net.lugdunon.state.item.PlaceableItemCache.deletePlaceableItemReference() at world creation time will no longer cause an unrecoverable error.&lt;br /&gt;
*net.lugdunon.state.item.manifestation.IManifestationHandler now supports layered foreground and background images.&lt;br /&gt;
*net.lugdunon.state.item.loot.PooledPercentageLootDropStrategy's drop chance now relies on the world's random seed.&lt;br /&gt;
*The net.lugdunon.state.item.action.update.SpawnUpdateAction's respawn location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.state.character.behavior.PathBehavior now relies on the world's random seed to find a new path.&lt;br /&gt;
*net.lugdunon.state.character.PlayerCharacter.buybackItem(NonPlayerCharacter npc, int si) now provides a reason in the form of a net.lugdunon.state.vendor.VendoredItem instance.&lt;br /&gt;
*An instance of net.lugdunon.state.character.Character will forget its attacker after 15 seconds.&lt;br /&gt;
*net.lugdunon.state.character.modifier.BaseModifier.renderTooltip() will now list the name of the applier, regardless of the character type (PC, NPC).&lt;br /&gt;
*net.lugdunon.state.character.behavior.AggroBehavior now supports the ability for an NPC to assist others of the same faction that are currently being attacked within a specified radius.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain(long instanceId, short[] terrain, byte[] elevation, byte[] biome, Tileset t, JSONObject instanceConfig, Object seed) now properly inits the terrain rendering strategy object to allow for a more robust procedural generation implementation.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.ITerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.AdjacentTileTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.rendering.terrain.Base16LayerTerrainRenderingStrategy access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.terrain.Chunk access and manipulation are now allowed at world creation time.&lt;br /&gt;
*net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator implementations should now support the JSONObjectSerializable as well.&lt;br /&gt;
*The net.lugdunon.world.instance.spawner.MineshaftInstanceSpawner's return instance portal location now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.boundedRandomValue(int min, int max) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.valueFromRandomDefinition(JSONObject o) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) now relies on the world's random seed.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable no properly implements toJSONObject().&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence now supports an indent corners mode.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.TerrainAlteration now supports a new mode: MODE_SET. Set mode will simply overwrite the value at the specified terrain index with the provided value.&lt;br /&gt;
*If the world to populate is empty or doesn't exist and the server property 'populate.world.from.archive' resolves to a valid .lug archive, then net.lugdunon.state.World.init() will attempt to populate the world from the specified .lug archive.&lt;br /&gt;
*If the server property 'archive.on.world.creation' is set (to the name of the desired archive) then upon the completion of the world creation process, the world will be saved to the specified archive file.&lt;br /&gt;
*The active world generator now holds the world configuration map, and can still be accessed by net.lugdunon.state.World.getWorldConfig().&lt;br /&gt;
*net.lugdunon.state.vendor.slot.SimpleVendorSlot.handlePurchase(PlayerCharacter pc, NonPlayerCharacter npc) now provides a reason for the purchase (item purchased as an instance of net.lugdunon.state.item.ItemDefinitions.ItemDefAndStackSize);&lt;br /&gt;
*Added default whitelist and blacklist implementation mods to the build process.&lt;br /&gt;
*The tileset is now accessible during world generation.&lt;br /&gt;
*The placeable item cache is now accessible during world generation.&lt;br /&gt;
*Refactored net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to be more robust in in its search for the proper world.cfg file.&lt;br /&gt;
*net.lugdunon.math.voronoi.Voronoi.getCellForPoint(Point origin) now constructs the polygon using the new net.lugdunon.math.Line object instead of net.lugdunon.math.Point arrays.&lt;br /&gt;
*net.lugdunon.command.vendor.RepairItemCommand now provides a reason (repairs: List&amp;lt;RepairItemInstance&amp;gt;) for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.vendor.SellItemToVendorCommand now provides a reason for the currency exchange.&lt;br /&gt;
*net.lugdunon.command.spell.DirecDamageCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirecHealCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.DirectInterruptCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierApplyCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.spell.ModifierDispelCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now correctly handles biome transitions.&lt;br /&gt;
*net.lugdunon.command.player.PlayerMoveCommand now relays path completion to the client.&lt;br /&gt;
*net.lugdunon.command.play.TillEarthCommand now relies on the world's random seed to determine whether or now to generate a turf item.&lt;br /&gt;
*net.lugdunon.command.play.ThrowPenguinEggCommand now relies on the world's random seed to determine when to spawn a penguin from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.ThrowEggCommand now relies on the world's random seed to determine when to spawn a chick from an egg toss.&lt;br /&gt;
*net.lugdunon.command.play.SetHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.ReturnHomeCommand now invokes a &amp;quot;CORE.METRIC.SPELL.CAST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.PlaceableStateChangeCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.ALTERED&amp;quot; metric update if a character changes the state of a placeable item instance.&lt;br /&gt;
*net.lugdunon.command.play.OpenAnimalBarrelCommand now relies on the world's random seed to determine when to release an animal from a barrel toss.&lt;br /&gt;
*net.lugdunon.command.play.InstanceTransitionCommand now invokes a &amp;quot;CORE.METRIC.GENERAL.PLAYER.INSTANCE.TRANSITION&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.play.DamagePlaceableCommand now invokes a &amp;quot;CORE.METRIC.PLACEABLE.ITEM.DAMAGED&amp;quot; metric update.&lt;br /&gt;
*Refactored net.lugdunon.command.inventory.MoveInventoryItemCommand logic to account for armor stands.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemDurabilityUpdateCommand now invokes a &amp;quot;CORE.METRIC.ITEM.DAMAGED&amp;quot; or &amp;quot;CORE.METRIC.ITEM.REPAIRED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.inventory.ItemBrokenCommand now invokes a &amp;quot;CORE.METRIC.ITEM.BROKEN&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.core.edit.UpdateUserDefinedDataCommand now supports large strings (allows for data over 2^16 bytes in length).&lt;br /&gt;
*net.lugdunon.command.edit.PlaceItemCommand now relies on the world's random seed to choose from which item to place from the tool definition's list of available placeable items.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.TerrainToImageCommand now supports rendering a political map.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now supports the inclusion of an &amp;quot;archive.name&amp;quot; property. If provided, upon save completion, the world's data will be written to a .lug archive using the &amp;quot;archive.name&amp;quot; property.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.SaveCommand now falls back to an immediate save if the interval value is invalid or missing.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.KickCommand now supports a &amp;quot;reason&amp;quot; property, used to optionally record a reason for kicking the player.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now invokes a &amp;quot;CORE.METRIC.CURRENCY.EARNED&amp;quot; or &amp;quot;CORE.METRIC.CURRENCY.SPENT&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.command.gm.AlterCurrencyCommand now supports a currency altered &amp;quot;reason&amp;quot; property.&lt;br /&gt;
*The standalone client's standaloneServer.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone servers' server.cfg now includes the line &amp;quot;populate.world.from.archive=https://repository.lugdunon.net/world/LUGDUNON.1024.lug&amp;quot; to default to pulling the world state from the repository instead of self-generating.&lt;br /&gt;
*The standalone client will now issue an error if a world can not be removed.&lt;br /&gt;
*ITEM.CULTURE now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*ITEM.CULTURE.RICH now added to itemBaseCosts with a value of 50.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR inventory item to items.json.&lt;br /&gt;
*Added CONTAINER.STAND.ARMOR placeable item to items.json.&lt;br /&gt;
*Added BAR.SMALL placeable item to items.json.&lt;br /&gt;
*Added SIGN.WOOD.WALL inventory item to items.json.&lt;br /&gt;
*Added SIGN.WOODEN.WALL placeable item to items.json.&lt;br /&gt;
*Added MEASURE_TILE_DISTANCE edit mode tool item to items.json.&lt;br /&gt;
*HOUSE.MEDIUM.BRICK.QUAINT renamed from &amp;quot;Small Brick House&amp;quot; to &amp;quot;Medium Brick House&amp;quot;.&lt;br /&gt;
*Added thin waterfalls for each of the 4 cardinal directions.&lt;br /&gt;
*Added a STREET.PREFIX category to names.json.&lt;br /&gt;
*Added ITEM.CONTAINER.STAND.ARMOR carpentry recipe to recipes.json.&lt;br /&gt;
*net.lugdunon.world.defaults.character.modifier.StaminaOverTimeModifier correctly handle valueMode and school during object serialization.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.GAINED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.applyModifier(String modifierId, Character applier) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.APPLIED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.LOST&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) now invokes a &amp;quot;CORE.METRIC.SPELL.MODIFIER.DISPELLED&amp;quot; metric update.&lt;br /&gt;
*net.lugdunon.state.character.NonPlayerCharacter.awardLoot(PlayerCharacter killer) now relies on the world's random seed when awarding loot.&lt;br /&gt;
*Added archive.on.world.creation server property.&lt;br /&gt;
*Added populate.world.from.archive server property.&lt;br /&gt;
*Added account.whitelist.external.check.interval world property.&lt;br /&gt;
*Added account.blacklist.external.check.interval world property.&lt;br /&gt;
*Added account.whitelist.denied.message world property.&lt;br /&gt;
*Added account.blacklist.denied.message world property.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.getPath(Point origin, Point destination, Rect[] blackZones, int searchDomain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Province.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.addRoad(Road road) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.listRoads() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.Politics.getPoliticsImageData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.IPoliticalMapGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeInterTownRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.politics.map.generator.DelaunayVoronoiGenerator.makeProvincialRoads(Politics politics,PlaceableItemCache placeables,Terrain terrain) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.getPointOfInterest(Point point) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.Settlement.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getCraftingStation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTrade() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesman() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TradesmanSettlement.getTradesmanGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getStreet(int orientation, int streetNumber) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreets() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsWithOrientation(int orientation) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsAtLocations(Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listIntersectionsWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(Street street, short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listStreetsIntersectingWith(final int streetNumber, final int orientation, final short terrainSize) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(int i) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.getPerimeterRoad(Point p) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(String plotId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.TownSettlement.listPointsOfInterestFor(Plot plot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.LyceumSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getEntryPoints() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getPathingMaskForEntryPoint(String entryPointId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmer() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.FarmSettlement.getFarmerGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.addPointOfInterest(NamedLocation pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.getPointOfInterest(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Plot.listPointsOfInterest() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.helper.Placeable.getUserDefinedData() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.generators.town.plot.helper.Fence(double chance, String placeable, String gatePlaceable, String[] gateStates, int[][] gateLocs, int indentCorners) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray pointsOfInterest, JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(JSONArray pointsOfInterest, String repairId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(JSONArray pointsOfInterest, String vendorId, String vendorDefId, String inventoryType) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation(JSONArray pointsOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.getServiceType() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.lastModified(String filePath,boolean absolute) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveJar(String jarName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToJar(File source, JarOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.saveArchive(String archiveName, String root, String writePath, boolean includeRoot) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.addFileToArchive(File source, ZipOutputStream target, String rootPath) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.extractArchive(String archiveURLOrFile, String destinationDirectory) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.distance(Point p0,Point p1,int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.drawWrappedRect(Graphics2D g, Rect r, int ws) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.worldExists(String worldId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getBehaviorState(int state) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.World.getOverworldInstance() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.hasBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getWhitelistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.getBlacklistImplementation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.kickAccount(String account, String reason) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.doSave(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.archiveCurrentWorld(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.State.Saver(String archiveName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.listSettlements() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.settlement.Settlements.findSettlementByPointOfInterest(Point pointOfInterest) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.hasAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountWhitelist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.mod.Mod.getAccountBlacklist() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causedByPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.MetricsManager.causeAsPlayerCharacter(Object cause) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleModifierApplyEvent(String modifierId, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleStaminaChangeEvent(int staminaChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.handleHealthChangeEvent(int healthChangeType, int causeType, Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.attacked(Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.isBeingAttacked() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getAttacker() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterNameForIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterType(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterId(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.characterIdentifier(String identifier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.Character.getCurrentPathTileIndex() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterItemUse.setCharacter(Character character) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId,Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makeStationaryTownGuard(String id, int orientation, int gender, String name, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.makePatrollingTownGuards(int[] genders, String[] names, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String npcId, JSONObject npcDef, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.procedural.ProceduralNonPlayerCharacter.addSpawnPoint(String[] npcIds, JSONObject[] npcDefs, double[] chances, int respawnRate, int respawnRadius, int respawnLimit, Point location, String settlementId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.BaseBehavior.stateHasChanged(int previousState, int newState) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.AtegnatosAggroBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.CycleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.DeathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.EvolveBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.FaceDirectionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.IdleBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PathBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PerformActionBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.PlayerProximityBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.ReproduceBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.UseItemBehavior.stateHasChanged(int previousState, int newState to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setTileset(Tileset tileset) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getTileset() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.setPlaceableItemCache(PlaceableItemCache placeableItemCache) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator.getPlaceableItemCache(long instanceId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.WorldGenerator. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.IWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.hasCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.mod.ServerMod.getCredits() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getX() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getY() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getW() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.getH() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Rect.intersects(Rect rect) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.wrap(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.set(int x, int y, short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Point.index(short d) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Location.equals(Location loc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Object o) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.equals(Line l) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.flip() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.math.Line.length(int max) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Interpreter.listConsoleFiredCommands() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key, Point[] defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getPath(String key) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setPath(String key, Point[] value) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPathCompletion(float pathCompletion) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand.setPath(Point[] path) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.player.PlayerPathCommand &amp;quot;pathCompletion&amp;quot; command property to the server-side API. This property consists of a real number bounded by 0.0 and 1.0 that indicates how far along the path the character is.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfig() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, String defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, boolean defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, float defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, double defaultValue)to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, byte defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, short defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, int defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.BaseWorldGen.getWorldConfigProperty(String propertyKey, long defaultValue) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, Character applier) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId, Character dispeller) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause, int amount, int overOrUnderflow) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.handlePostLoadInitialization() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter. to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getCurrentState() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getContentsRenderer() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.placeables.PlaceableItemInstance.getManifestationHandler() to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.setPathCompletion(pathCompletion) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterIdentifier(characterOrIdentifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterType(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.character.Character.characterNameForIdentifier(identifier) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getDisplayTotal(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.metric.Metric.getSectionHeight(el) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getForegroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.manifestation.ContainerManifestationHandler.getBackgroundImage(placeableItemInstance,ignoreTint) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.assignStall(JSONArray items, int worldDim, Rect plotDim, Rect stallDim, Rect logicalStallDim, String settlementId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addRepair(String repairId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addVendor(String vendorId, String vendorDefId, String inventoryType) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.Stall.addCraftingStation() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.AlchemyStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ArmorerStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BlacksmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.BrewingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CarpentryStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ClothingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.CookingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.FarmingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GeneralStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.GoldsmithingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.LivestockStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.RepairStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.ResearchStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.SmeltingStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.TinkeringStall.performStallAssignment(JSONArray pointsOfInterest, JSONObject props) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.settlemen.settlements.generators.town.plot.market.. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListCount() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackListIterator() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isWhiteListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.isBlackListed(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unBlackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.blackList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.unWhiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.whiteList(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.State.kickAccount(String account) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleHealthChangeEvent (final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterResourceChangeDelegate.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.modifier.BaseModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.CharacterStatModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.reapply(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.modifier.TurnUndeadModifier.setValueModifierWithApplier(double valueModifier, String applierName) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.defaults.character.DefaultCharacterStats.expireModifier(String modifierId) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.PlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleHealthChangeEvent(final int healthChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter.handleStaminaChangeEvent(final int staminaChangeType, final int causeType, final Object cause) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.NonPlayerCharacter. from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_NPC from the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLAYER from the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.BarracksPlot to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Road to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.settlements.town.Street to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.biome.settlement.post.TownPathingPostProcessor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Credit to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.credit.Attribution to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierWithActor to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyAlteredReason to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.RepairItemInstance to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.SetPatrol to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterIdentifier to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountWhitelist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.account.IAccountBlacklist to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.states.tiledGame.modes.MeasureTileDistanceMode to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.BaseEnumeratedCausesMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.SpellCastMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierGainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierExpiredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierDispelledMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.spell.ModifierAppliedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.PlaceableItemAlteredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemRepairedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemDamagedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.item.ItemBrokenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaRestoredMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.StaminaDrainedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerMovementMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.general.PlayerInstanceTransitionMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencySpentMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.currency.CurrencyEarnedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingReceivedMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.HealingDoneMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageTakenMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.metric.combat.DamageDealtMetric to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.IContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.item.container.ArmorStandContentsRenderer to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.character.behavior.SetPatrolBehavior to the codebase.&lt;br /&gt;
*Added net.lugdunon.math.NamedLocation to the server-side codebase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-10-08T15:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.6 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-10-08T15:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.5|0.8.5 (08/10/2017)]]&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.5 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-10-08T15:39:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.6'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 08/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-02T17:36:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Details Coming Soon)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.5</id>
		<title>Release 0.8.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.5"/>
				<updated>2017-10-02T17:36:15Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.5'''''   ''Last Updated: 02/10/2017''     Mods altered in this update:     Server mods altered in this update:     /etc files altered in this update:     ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 02/10/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Modding_Overview</id>
		<title>Modding Overview</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Modding_Overview"/>
				<updated>2017-07-31T11:37:22Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rewrite|More information necessary}}&lt;br /&gt;
&lt;br /&gt;
{{engine}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;*Please keep an eye on this section as eventually the relevant APIs will be published here in their entirety as well as the code for certain key items will be made available in full as examples of the APIs in action*&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Welcome to the section on how to modify and expand Lugdunon! This is very much a ‘work in progress’ area so please have patience, as all sub-sections will eventually be populated with relevant content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, the following sections are live and populated:&lt;br /&gt;
&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=ModStructure Mod File Structure ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=BuildTools Build Tools Source and Overview ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Namespace.js Namespace.js ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Commands Commands]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Sprites Sprites ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=NPCs NPCs]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Terrain_Generation Terrain Generation ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other sections are either stubbed out so you can get a feel for what will be touched on or actually in the process of being written.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A few things are assumed going forward here:&lt;br /&gt;
&lt;br /&gt;
* You know how to code in [http://www.java.com/ Java].&lt;br /&gt;
* You know how to develop for [http://www.html5rocks.com/ HTML5] (html,css,javascript).&lt;br /&gt;
* You know that [http://json.org/ JSON] isn’t a dude traipsing around with the Argonauts.&lt;br /&gt;
* You are familiar with the [//wiki.lugdunon.net/w/?title=Running_your_own_server Running your own server] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Happy modding!&lt;br /&gt;
&lt;br /&gt;
==Tech Overview==&lt;br /&gt;
&lt;br /&gt;
The server exists as a single .jar file, along with a rigid file structure containing all mutable game data. Java was chosen over other technologies, such as node.js, for its rather ubiquitous nature and ease of deployment. All that is initially needed to get a server up and running is the server .jar file, a server.cfg and a basic world file structure. A complete listing of the server configuration options can be found [//wiki.lugdunon.net/w/?title=Running_your_own_server#Configuring_your_server here].&lt;br /&gt;
&lt;br /&gt;
The client is written to conform to the HTML5 specification, and runs completely within a web browser. Many HTML5 and CSS3 features are leveraged, including websockets, localStorage, canvas, css transitions, data buffers, and more. Current versions of FireFox, Chrome, and Safari are all supported however IE 10 is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
Client-server communication is accomplished via websockets, with static assets served up via a REST-like API. All HTTP requests are handled by two embedded jetty instances on the server side, one for maintaining the websocket connections and the other for all static asset requests. Websockets are used for passing discrete commands between the client and server. Each command is identified by an opcode and contains a server-side and possibly a client-side counterpart. Commands are placed in processing queues on both the client and server and are executed in order during the course of the update loop.&lt;br /&gt;
&lt;br /&gt;
Both the client and the server provide a manifest of resources including js, json, css, html, and images at initialization. The client is then free to resolve requests for resources at runtime and load from the required source. In this way, the server may override certain default assets provided initially by the client itself.&lt;br /&gt;
&lt;br /&gt;
For complete instructions on getting a server up and running, check [//wiki.lugdunon.net/w/?title=Running_your_own_server here].&lt;br /&gt;
&lt;br /&gt;
To see a listing of all third-party libraries used by the server’s code, look [//wiki.lugdunon.net/w/?title=Attributions here].&lt;br /&gt;
&lt;br /&gt;
==The /etc directory==&lt;br /&gt;
&lt;br /&gt;
Under the world’s home directory, you will find the /etc directory. This directory contains all of the human editable data that makes up a particular world. If the ‘json.write.readable’ option in world.cfg is set to true, all of the JSON data will be written to disk in a nicely formatted fashion. Below is a complete listing of all the files in the /etc directory as well as a brief overview of what each file contains. Never edit these files while the server is running as any changes will be overwritten when the server syncs its state.&lt;br /&gt;
&lt;br /&gt;
More complete documentation on file structure is forthcoming.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File&lt;br /&gt;
! Purpose&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;achievementCategories.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The achievement categories file. List the categories into which the various achievements fall.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;achievements.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The achievements data file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;advancementCategories.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The advancement categories file. List the categories into which the various advancement fall.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;advancements.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The advancements data file. Advancement object structure depends on CharacterStats module.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;arcState.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The saved state of the world's arc system. This file should not be edited manually.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;areaOfEffectDefinitions.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of area of effect definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;behaviors.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The behavior definitions file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;behaviorStates.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The behavior states file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;commands.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The commands listing. This determines which commands are available on the server and to some extent on the client as well.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;compendium.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The compendium definitions, including the list of codices available on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;consoleParameterFilters.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The console parameter filters listing. This determines which console parameter filters are available for use within server-parsed console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;craftingDisciplines.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The crafting discipline listing. This file lists the crafting disciplines (and their details) that are available to players on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defaultCharacterTemplates.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The default player character templates. This file is what drives the content in the player character creation screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dialogue.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The dialogue listing. Contains all the dialogue available to NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;globalProperties.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The global properties file. Contains all of the globally accessible properties used by the server. This is a good place for modders to place general use, persistent data without having to implement their own etc/ store file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;itemBaseCosts.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The item base cost configuration file. Used to programmatically calculate the cost of items on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;itemCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all actively instanced items in game. Modifying this file by hand is not recommended.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;items.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of item definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mailCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The current collection of mail on the server. This file should not be edited manually.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;manifest.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all assets (images and sprite definitions) available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;metrics.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all metrics available to the server for tracking.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;modifiers.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all modifiers (and their definitions that exist on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mods.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all active mods on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;motd.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The server's 'Message of the Day' or motd. Will display in al client's chat console when initially logged in.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;npcs.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of NPC templates available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;quests.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of quest definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;recipes.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of crafting recipe definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;restHandlers.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of rest handlers supported by the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;spellSchools.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of spell school definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;subsystems.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of subsystems supported by the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendorCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The current state of each vendor's inventory.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendors.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of instanced vendor NPCs available on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;instances&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing instance specific configurations.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;instanceTemplates&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing instance template configurations.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;subsystems&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing subsystem configurations.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Expandability==&lt;br /&gt;
&lt;br /&gt;
Lugdunon is easily ‘moddable’ and will only get easier as mechanisms are added to the server to facilitate loading of individual mods. Both client-side and server-side code can be augmented by third party developers with relative ease. Custom client-side code and other assets can be deployed by the server upon initial client connection, or at any point thereafter until the client disconnects. Client-side code and assets are cached using the browser’s localStorage API and each server’s code is maintained independently in a separate namespace such that there is no overlap. Client-side assets are searched starting with the server first, then falling back to the main client, enabling the server-side to in essence override the main client’s assets where needed.&lt;br /&gt;
Modders can currently modify / add new code in the following ways:&lt;br /&gt;
&lt;br /&gt;
* Add new commands.&lt;br /&gt;
** Commands are instructions that are queued and examined at the start of each update pass. They are what ultimately drive the state of the game world as well as provide the basis for all client/server communication.&lt;br /&gt;
* Deploy an entirely novel ‘character stats / advancement’ module, allowing for the tailoring of many aspects of character related behavior. See &amp;lt;code&amp;gt;net.lugdunon.state.character.advancement.ICharacterStats&amp;lt;/code&amp;gt; to see just what is possible.&lt;br /&gt;
* Implement new items. The items API provide several interfaces for allowing items to interact with the game world, or for characters to act upon them:&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.ui.ActionButtonType&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Handles client-side actions. The default, &amp;lt;code&amp;gt;net.lugdunon.states.tiledGame.actions.ItemAction&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;net.lugdunon.state.item.action.IActionHandler&amp;lt;/code&amp;gt; in its execution to further differentiate item behavior.&lt;br /&gt;
*** Custom ActionButtonTypes are usually leveraged in the creation of new GM editing modes, such as terrain editing, or placing items.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.IActionHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called client-side when an item is ‘used’.&lt;br /&gt;
*** All tools, weapons, and items used in the game world make use of an ActionHandler. A prime example is the water bucket, where using an empty bucket on a body of water will fill the bucket with water. Another is the Hoe, whereby using the Hoe on a suitable patch of grassland will till the earth and make it ready for planting crops.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.configure.IConfigureAction&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called client-side when a placeable item is clicked on with the ‘configure’ tool.&lt;br /&gt;
*** Signs and NPC Spawners make use of this interface.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.update.IPlaceableItemUpdateAction&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called server-side on each update pass, allowing the placeable item to update its state.&lt;br /&gt;
*** Examples of items that make use of this are spawners (to determinc when to spawn a new NPC instance), and the campfire (to allow the fire to burn itself out, as well as melt surrounding snow.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.manifestation.IManifestationHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Handles a placeable item instance’s manifestation in the game world.&lt;br /&gt;
*** A good example of this is the fence item. The fence item uses a custom ManifestationHandler to determine how a fence instance links up with other adjacent fence instances.&lt;br /&gt;
* Implement new NPC behaviors. Behaviors are placed in a priority queue and each behavior can modify the NPC’s internal behavior stat, causing subsequent behaviors to act differently or not at all. Behaviors extend the &amp;lt;code&amp;gt;net.lugdunon.state.character.behavior.BaseBehavior&amp;lt;/code&amp;gt; class.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding|Overview]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Modding_Overview</id>
		<title>Modding Overview</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Modding_Overview"/>
				<updated>2017-07-31T11:36:31Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rewrite|More information necessary}}&lt;br /&gt;
&lt;br /&gt;
{{engine}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;*Please keep an eye on this section as eventually the relevant APIs will be published here in their entirety as well as the code for certain key items will be made available in full as examples of the APIs in action*&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Welcome to the section on how to modify and expand Lugdunon! This is very much a ‘work in progress’ area so please have patience, as all sub-sections will eventually be populated with relevant content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently, the following sections are live and populated:&lt;br /&gt;
&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=ModStructure Mod File Structure ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=BuildTools Build Tools Source and Overview ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Namespace.js Namespace.js ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Commands Commands]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=NPCs NPCs]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Terrain_Generation Terrain Generation ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Sprites Sprites ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other sections are either stubbed out so you can get a feel for what will be touched on or actually in the process of being written.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A few things are assumed going forward here:&lt;br /&gt;
&lt;br /&gt;
* You know how to code in [http://www.java.com/ Java].&lt;br /&gt;
* You know how to develop for [http://www.html5rocks.com/ HTML5] (html,css,javascript).&lt;br /&gt;
* You know that [http://json.org/ JSON] isn’t a dude traipsing around with the Argonauts.&lt;br /&gt;
* You are familiar with the [//wiki.lugdunon.net/w/?title=Running_your_own_server Running your own server] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Happy modding!&lt;br /&gt;
&lt;br /&gt;
==Tech Overview==&lt;br /&gt;
&lt;br /&gt;
The server exists as a single .jar file, along with a rigid file structure containing all mutable game data. Java was chosen over other technologies, such as node.js, for its rather ubiquitous nature and ease of deployment. All that is initially needed to get a server up and running is the server .jar file, a server.cfg and a basic world file structure. A complete listing of the server configuration options can be found [//wiki.lugdunon.net/w/?title=Running_your_own_server#Configuring_your_server here].&lt;br /&gt;
&lt;br /&gt;
The client is written to conform to the HTML5 specification, and runs completely within a web browser. Many HTML5 and CSS3 features are leveraged, including websockets, localStorage, canvas, css transitions, data buffers, and more. Current versions of FireFox, Chrome, and Safari are all supported however IE 10 is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
Client-server communication is accomplished via websockets, with static assets served up via a REST-like API. All HTTP requests are handled by two embedded jetty instances on the server side, one for maintaining the websocket connections and the other for all static asset requests. Websockets are used for passing discrete commands between the client and server. Each command is identified by an opcode and contains a server-side and possibly a client-side counterpart. Commands are placed in processing queues on both the client and server and are executed in order during the course of the update loop.&lt;br /&gt;
&lt;br /&gt;
Both the client and the server provide a manifest of resources including js, json, css, html, and images at initialization. The client is then free to resolve requests for resources at runtime and load from the required source. In this way, the server may override certain default assets provided initially by the client itself.&lt;br /&gt;
&lt;br /&gt;
For complete instructions on getting a server up and running, check [//wiki.lugdunon.net/w/?title=Running_your_own_server here].&lt;br /&gt;
&lt;br /&gt;
To see a listing of all third-party libraries used by the server’s code, look [//wiki.lugdunon.net/w/?title=Attributions here].&lt;br /&gt;
&lt;br /&gt;
==The /etc directory==&lt;br /&gt;
&lt;br /&gt;
Under the world’s home directory, you will find the /etc directory. This directory contains all of the human editable data that makes up a particular world. If the ‘json.write.readable’ option in world.cfg is set to true, all of the JSON data will be written to disk in a nicely formatted fashion. Below is a complete listing of all the files in the /etc directory as well as a brief overview of what each file contains. Never edit these files while the server is running as any changes will be overwritten when the server syncs its state.&lt;br /&gt;
&lt;br /&gt;
More complete documentation on file structure is forthcoming.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File&lt;br /&gt;
! Purpose&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;achievementCategories.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The achievement categories file. List the categories into which the various achievements fall.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;achievements.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The achievements data file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;advancementCategories.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The advancement categories file. List the categories into which the various advancement fall.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;advancements.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The advancements data file. Advancement object structure depends on CharacterStats module.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;arcState.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The saved state of the world's arc system. This file should not be edited manually.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;areaOfEffectDefinitions.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of area of effect definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;behaviors.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The behavior definitions file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;behaviorStates.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The behavior states file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;commands.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The commands listing. This determines which commands are available on the server and to some extent on the client as well.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;compendium.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The compendium definitions, including the list of codices available on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;consoleParameterFilters.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The console parameter filters listing. This determines which console parameter filters are available for use within server-parsed console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;craftingDisciplines.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The crafting discipline listing. This file lists the crafting disciplines (and their details) that are available to players on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defaultCharacterTemplates.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The default player character templates. This file is what drives the content in the player character creation screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dialogue.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The dialogue listing. Contains all the dialogue available to NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;globalProperties.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The global properties file. Contains all of the globally accessible properties used by the server. This is a good place for modders to place general use, persistent data without having to implement their own etc/ store file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;itemBaseCosts.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The item base cost configuration file. Used to programmatically calculate the cost of items on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;itemCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all actively instanced items in game. Modifying this file by hand is not recommended.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;items.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of item definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mailCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The current collection of mail on the server. This file should not be edited manually.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;manifest.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all assets (images and sprite definitions) available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;metrics.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all metrics available to the server for tracking.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;modifiers.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all modifiers (and their definitions that exist on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mods.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of all active mods on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;motd.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The server's 'Message of the Day' or motd. Will display in al client's chat console when initially logged in.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;npcs.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of NPC templates available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;quests.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of quest definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;recipes.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of crafting recipe definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;restHandlers.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of rest handlers supported by the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;spellSchools.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of spell school definitions available on the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;subsystems.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of subsystems supported by the server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendorCache.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The current state of each vendor's inventory.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendors.json&amp;lt;/code&amp;gt;&lt;br /&gt;
|The list of instanced vendor NPCs available on this server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;instances&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing instance specific configurations.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;instanceTemplates&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing instance template configurations.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;subsystems&amp;lt;/code&amp;gt;&lt;br /&gt;
|Directory containing subsystem configurations.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Expandability==&lt;br /&gt;
&lt;br /&gt;
Lugdunon is easily ‘moddable’ and will only get easier as mechanisms are added to the server to facilitate loading of individual mods. Both client-side and server-side code can be augmented by third party developers with relative ease. Custom client-side code and other assets can be deployed by the server upon initial client connection, or at any point thereafter until the client disconnects. Client-side code and assets are cached using the browser’s localStorage API and each server’s code is maintained independently in a separate namespace such that there is no overlap. Client-side assets are searched starting with the server first, then falling back to the main client, enabling the server-side to in essence override the main client’s assets where needed.&lt;br /&gt;
Modders can currently modify / add new code in the following ways:&lt;br /&gt;
&lt;br /&gt;
* Add new commands.&lt;br /&gt;
** Commands are instructions that are queued and examined at the start of each update pass. They are what ultimately drive the state of the game world as well as provide the basis for all client/server communication.&lt;br /&gt;
* Deploy an entirely novel ‘character stats / advancement’ module, allowing for the tailoring of many aspects of character related behavior. See &amp;lt;code&amp;gt;net.lugdunon.state.character.advancement.ICharacterStats&amp;lt;/code&amp;gt; to see just what is possible.&lt;br /&gt;
* Implement new items. The items API provide several interfaces for allowing items to interact with the game world, or for characters to act upon them:&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.ui.ActionButtonType&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Handles client-side actions. The default, &amp;lt;code&amp;gt;net.lugdunon.states.tiledGame.actions.ItemAction&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;net.lugdunon.state.item.action.IActionHandler&amp;lt;/code&amp;gt; in its execution to further differentiate item behavior.&lt;br /&gt;
*** Custom ActionButtonTypes are usually leveraged in the creation of new GM editing modes, such as terrain editing, or placing items.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.IActionHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called client-side when an item is ‘used’.&lt;br /&gt;
*** All tools, weapons, and items used in the game world make use of an ActionHandler. A prime example is the water bucket, where using an empty bucket on a body of water will fill the bucket with water. Another is the Hoe, whereby using the Hoe on a suitable patch of grassland will till the earth and make it ready for planting crops.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.configure.IConfigureAction&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called client-side when a placeable item is clicked on with the ‘configure’ tool.&lt;br /&gt;
*** Signs and NPC Spawners make use of this interface.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.action.update.IPlaceableItemUpdateAction&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Called server-side on each update pass, allowing the placeable item to update its state.&lt;br /&gt;
*** Examples of items that make use of this are spawners (to determinc when to spawn a new NPC instance), and the campfire (to allow the fire to burn itself out, as well as melt surrounding snow.&lt;br /&gt;
** &amp;lt;code&amp;gt;net.lugdunon.state.item.manifestation.IManifestationHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Handles a placeable item instance’s manifestation in the game world.&lt;br /&gt;
*** A good example of this is the fence item. The fence item uses a custom ManifestationHandler to determine how a fence instance links up with other adjacent fence instances.&lt;br /&gt;
* Implement new NPC behaviors. Behaviors are placed in a priority queue and each behavior can modify the NPC’s internal behavior stat, causing subsequent behaviors to act differently or not at all. Behaviors extend the &amp;lt;code&amp;gt;net.lugdunon.state.character.behavior.BaseBehavior&amp;lt;/code&amp;gt; class.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding|Overview]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-07-31T11:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.5 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-07-31T11:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.5 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-07-31T11:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Modding}}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=ModStructure Mod File Structure ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=BuildTools Build Tools Source and Overview ]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Namespace.js Namespace.js ]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Commands Commands]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=NPCs NPCs]&lt;br /&gt;
* [//wiki.lugdunon.net/w/?title=Terrain_Generation Terrain Generation ]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.5 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Running_your_own_server</id>
		<title>Running your own server</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Running_your_own_server"/>
				<updated>2017-05-09T16:41:00Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page should hopefully make getting your own Lugdunon server up and running a little bit easier. It is assumed that you have at least some knowledge in basic networking, executing java .jar files, and how to use the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server does require java (preferably the latest version so that all the latest security fixes are available), but should run fine on earlier versions (1.6+). You can check your version of java by typing &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; on the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting with 0.1.1 of the standalone client and 0.6.3 of the server, a compatible 32-bit or 64-bit JRE is pre-packaged for you in the download.&lt;br /&gt;
&lt;br /&gt;
==Setting up the server==&lt;br /&gt;
&lt;br /&gt;
The lastest server release is available for Windows, x86 Linux, and MacOS at [http://lugdunon.net/downloads.html lugdunon.net]. Once you have downloaded the correct archive for your operating system, decompress it in a convenient location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your file structure should now look like this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lugdunonServer&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/dat&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;server.cfg&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;run.bat OR run.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now open the &amp;lt;code&amp;gt;/lugdunonServer/dat/server.cfg&amp;lt;/code&amp;gt; file in your favorite plaintext editor and enter the following information into this file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
server.name=Your Server Name&amp;lt;br/&amp;gt;&lt;br /&gt;
host           =ip address or host name to bind to&amp;lt;br/&amp;gt;&lt;br /&gt;
su.account =your super user's lugdunon account name&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note, to find out what your ip address is you can:&lt;br /&gt;
&lt;br /&gt;
* On Windows: open a console and type in &amp;quot;ipconfig /all&amp;quot; without the &amp;quot;&amp;quot;.&lt;br /&gt;
* On MacOS / Linux: from the console type in &amp;quot;ifconfig&amp;quot; without the &amp;quot;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
That should show you your IPV4. If you are planning on allowing other machines to connect, do not use your virtual loopback interface (127.0.0.1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save and close the &amp;lt;code&amp;gt;/lugdunonServer/dat/server.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the above steps have been completed you should be able to launch the server by executing the provided run.bat file for windows or the run.sh file for unix/linux/macosx. On startup the server will recognize that it is missing a world definition and attempt to create a default one for you. If everything has been set up correctly, you should see the server start up cleanly and something akin to the following written to the console:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style='color:#880000'&amp;gt;19/02/2013 17:58:42.744 INFO Successfully validated super-user.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.783 INFO World file doesn't exist. Creating default at SERVER_ROOT/dat/default.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.784 INFO Generating default world configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.785 INFO Generating default terrain data.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:47.659 INFO Config file: etc/commands.json doesn't exist. Creating default.&amp;lt;br/&amp;gt;&lt;br /&gt;
...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.477 INFO Config file: etc/advancements.json doesn't exist. Creating default.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.553 INFO Manifest initialized with 61 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.596 INFO ItemDefinitions initialized with 207 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.604 INFO ItemCache initialized with 15 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.604 INFO ItemCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.606 INFO PlaceableItemCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.607 INFO WaypointCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.608 INFO NpcDefinitions initialized with 4 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.687 INFO Advancements initialized with 27 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.689 INFO NpcCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.768 INFO Recipes initialized with 82 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.781 INFO Server 'Test Server' initialized with world 'Default 1024x1024 World'.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.787 INFO Generating Manifest...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:50.297 INFO ...Manifest Generation Complete.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:50.299 INFO Computing Impassability Flags...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.391 INFO ...Done in 2.091711 seconds.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.463 INFO Command '(0x0001) Ping' registered with interpreter.&amp;lt;br/&amp;gt;&lt;br /&gt;
...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.792 INFO Command '(0x0047) Add / Edit Crafting Recipe' registered with interpreter.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.896 INFO Lugdunon Server Started In: 12.35505 seconds.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.914 INFO Autosaving at 30 minute intervals.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do have any issues, please feel free send email to [mailto://support@lugdunon.net support@lugdunon.net] with any questions that you might have.&lt;br /&gt;
&lt;br /&gt;
To let your friends join your server you have to open the ports: ’41975′ and ’41976′. Then you can give your external ip to your friends and they will be able to join.&lt;br /&gt;
&lt;br /&gt;
==Configuring your server==&lt;br /&gt;
&lt;br /&gt;
There are a few configuration options you can specify for server. The server’s configuration is stored in the &amp;lt;code&amp;gt;lugdunonServer/dat&amp;lt;/code&amp;gt; directory in a file named &amp;lt;code&amp;gt;server.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The available options for the server’s configuration are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Name&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|su.account&lt;br /&gt;
|required&lt;br /&gt;
|The server super user’s account name&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|server.name&lt;br /&gt;
|required&lt;br /&gt;
|The server’s name. shown on server select screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|world&lt;br /&gt;
|optional&lt;br /&gt;
|The directory (under lugdunonServer/dat) containing the server’s world data.&lt;br /&gt;
Defaults to ‘default’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|host&lt;br /&gt;
|optional&lt;br /&gt;
|The host name for the server to bind to. either and ip address or host name is valid.&lt;br /&gt;
Defaults to ‘localhost’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ws.port&lt;br /&gt;
|optional&lt;br /&gt;
|The port for the websockets server to bind to.&lt;br /&gt;
Defaults to ’41975′.&lt;br /&gt;
Note: your players will have to know this when connecting if it is anything other than the default.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|cs.port&lt;br /&gt;
|optional&lt;br /&gt;
|The port for the content server to bind to.&lt;br /&gt;
Defaults to ’41976′.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|save.interval&lt;br /&gt;
|optional&lt;br /&gt;
|The amount of time (in minutes) between autosaves.&lt;br /&gt;
Defaults to ’30′.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|npc.name.filter&lt;br /&gt;
|optional&lt;br /&gt;
|Regular expression used for new NPC name validation.&lt;br /&gt;
Defaults to [0-9A-Za-z]{3,}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|npc.name.filter.error&lt;br /&gt;
|optional&lt;br /&gt;
|The error message returned if the new NPC name validation fails.&lt;br /&gt;
Defaults to ‘Name must consist of alpha numeric characters and must also be longer than 2 characters.’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name.filter&lt;br /&gt;
|optional&lt;br /&gt;
|Regular expression used for new player character name validation.&lt;br /&gt;
Defaults to [0-9A-Za-z\&amp;quot;\'\s]{3,}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name.filter.error&lt;br /&gt;
|optional&lt;br /&gt;
|The error message returned if the new player character name validation fails.&lt;br /&gt;
Defaults to ‘Name must consist of alpha numeric characters,’,\”,-,whitespace and must also be longer than 2 characters.’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|add.manifest.extensions&lt;br /&gt;
|optional&lt;br /&gt;
|A comma delimited list of any additional file extensions (with the ‘.’) that the dynamic manifest generator should pick up.&lt;br /&gt;
By default, .js, .json , .png , .html, .css are included in manifest generation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|allow.guests&lt;br /&gt;
|optional&lt;br /&gt;
|Set to false to block access by guest accounts.&lt;br /&gt;
Defaults to true.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuring your world==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The world’s configuration is stored in the &amp;lt;code&amp;gt;lugdunonServer/dat/WORLD&amp;lt;/code&amp;gt; directory in a file named &amp;lt;code&amp;gt;world.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The available options for the worlds configuration are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Name&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|required&lt;br /&gt;
|The world’s name. Shown on server select screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|chunk.size&lt;br /&gt;
|optional&lt;br /&gt;
|The size in tiles for a chunk’s dimensions (width / height)&lt;br /&gt;
Defaults to 8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|seed&lt;br /&gt;
|optional&lt;br /&gt;
|The random seed used in many of lugdunon’s functions. May be a string or integer.&lt;br /&gt;
Defaults to the time in milliseconds of the server’s start.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tileset.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom tileset config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.Tileset’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ui.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom ui config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.UI’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|icon.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom icon config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.Icons’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|etc.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom etc config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.etc’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|character.stats&lt;br /&gt;
|optional&lt;br /&gt;
|Custom character stats module location.&lt;br /&gt;
Defaults to ‘net.lugdunon.state.character.advancement.def.DefaultCharacterStats’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|default.console.cmd&lt;br /&gt;
|optional&lt;br /&gt;
|Default console command (if no / command is sent).&lt;br /&gt;
Defaults to ‘yell’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|json.write.readable&lt;br /&gt;
|optional&lt;br /&gt;
|Boolean value that determines whether to write all JSON data to disk in human readable or compact form.&lt;br /&gt;
Defaults to ‘true’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ping.interval&lt;br /&gt;
|optional&lt;br /&gt;
|The interval (in milliseconds) between server to client ping commands.&lt;br /&gt;
Defaults to ‘6000’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|chunk.size&lt;br /&gt;
|optional&lt;br /&gt;
|The map chunk size.&lt;br /&gt;
Defaults to ‘8’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|environment.second.length&lt;br /&gt;
|optional&lt;br /&gt;
|The length of an in game second (in milliseconds).&lt;br /&gt;
Defaults to ‘50’. This equates to an in game day length of 72 real time minutes.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server Hosting|Running your own server]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Running_your_own_server</id>
		<title>Running your own server</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Running_your_own_server"/>
				<updated>2017-05-09T16:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page should hopefully make getting your own Lugdunon server up and running a little bit easier. It is assumed that you have at least some knowledge in basic networking, executing java .jar files, and how to use the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server does require java (preferably the latest version so that all the latest security fixes are available), but should run fine on earlier versions (1.6+). You can check your version of java by typing &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; on the command line.&lt;br /&gt;
&lt;br /&gt;
Starting with 0.1.1 of the standalone client and 0.6.3 of the server, a compatible 32-bit or 64-bit JRE is pre-packaged for you in the download.&lt;br /&gt;
&lt;br /&gt;
==Setting up the server==&lt;br /&gt;
&lt;br /&gt;
The lastest server release is available for Windows, x86 Linux, and MacOS at [http://lugdunon.net/downloads.html lugdunon.net]. Once you have downloaded the correct archive for your operating system, decompress it in a convenient location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your file structure should now look like this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/lugdunonServer&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/dat&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;server.cfg&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/logs&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;run.bat OR run.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now open the &amp;lt;code&amp;gt;/lugdunonServer/dat/server.cfg&amp;lt;/code&amp;gt; file in your favorite plaintext editor and enter the following information into this file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
server.name=Your Server Name&amp;lt;br/&amp;gt;&lt;br /&gt;
host           =ip address or host name to bind to&amp;lt;br/&amp;gt;&lt;br /&gt;
su.account =your super user's lugdunon account name&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note, to find out what your ip address is you can:&lt;br /&gt;
&lt;br /&gt;
* On Windows: open a console and type in &amp;quot;ipconfig /all&amp;quot; without the &amp;quot;&amp;quot;.&lt;br /&gt;
* On MacOS / Linux: from the console type in &amp;quot;ifconfig&amp;quot; without the &amp;quot;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
That should show you your IPV4. If you are planning on allowing other machines to connect, do not use your virtual loopback interface (127.0.0.1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save and close the &amp;lt;code&amp;gt;/lugdunonServer/dat/server.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the above steps have been completed you should be able to launch the server by executing the provided run.bat file for windows or the run.sh file for unix/linux/macosx. On startup the server will recognize that it is missing a world definition and attempt to create a default one for you. If everything has been set up correctly, you should see the server start up cleanly and something akin to the following written to the console:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style='color:#880000'&amp;gt;19/02/2013 17:58:42.744 INFO Successfully validated super-user.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.783 INFO World file doesn't exist. Creating default at SERVER_ROOT/dat/default.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.784 INFO Generating default world configuration.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:42.785 INFO Generating default terrain data.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:47.659 INFO Config file: etc/commands.json doesn't exist. Creating default.&amp;lt;br/&amp;gt;&lt;br /&gt;
...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.477 INFO Config file: etc/advancements.json doesn't exist. Creating default.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.553 INFO Manifest initialized with 61 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.596 INFO ItemDefinitions initialized with 207 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.604 INFO ItemCache initialized with 15 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.604 INFO ItemCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.606 INFO PlaceableItemCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.607 INFO WaypointCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.608 INFO NpcDefinitions initialized with 4 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.687 INFO Advancements initialized with 27 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.689 INFO NpcCache initialized with 0 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.768 INFO Recipes initialized with 82 entries.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.781 INFO Server 'Test Server' initialized with world 'Default 1024x1024 World'.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:48.787 INFO Generating Manifest...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:50.297 INFO ...Manifest Generation Complete.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:50.299 INFO Computing Impassability Flags...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.391 INFO ...Done in 2.091711 seconds.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.463 INFO Command '(0x0001) Ping' registered with interpreter.&amp;lt;br/&amp;gt;&lt;br /&gt;
...&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.792 INFO Command '(0x0047) Add / Edit Crafting Recipe' registered with interpreter.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.896 INFO Lugdunon Server Started In: 12.35505 seconds.&amp;lt;br/&amp;gt;&lt;br /&gt;
19/02/2013 17:58:52.914 INFO Autosaving at 30 minute intervals.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do have any issues, please feel free send email to [mailto://support@lugdunon.net support@lugdunon.net] with any questions that you might have.&lt;br /&gt;
&lt;br /&gt;
To let your friends join your server you have to open the ports: ’41975′ and ’41976′. Then you can give your external ip to your friends and they will be able to join.&lt;br /&gt;
&lt;br /&gt;
==Configuring your server==&lt;br /&gt;
&lt;br /&gt;
There are a few configuration options you can specify for server. The server’s configuration is stored in the &amp;lt;code&amp;gt;lugdunonServer/dat&amp;lt;/code&amp;gt; directory in a file named &amp;lt;code&amp;gt;server.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The available options for the server’s configuration are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Name&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|su.account&lt;br /&gt;
|required&lt;br /&gt;
|The server super user’s account name&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|server.name&lt;br /&gt;
|required&lt;br /&gt;
|The server’s name. shown on server select screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|world&lt;br /&gt;
|optional&lt;br /&gt;
|The directory (under lugdunonServer/dat) containing the server’s world data.&lt;br /&gt;
Defaults to ‘default’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|host&lt;br /&gt;
|optional&lt;br /&gt;
|The host name for the server to bind to. either and ip address or host name is valid.&lt;br /&gt;
Defaults to ‘localhost’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ws.port&lt;br /&gt;
|optional&lt;br /&gt;
|The port for the websockets server to bind to.&lt;br /&gt;
Defaults to ’41975′.&lt;br /&gt;
Note: your players will have to know this when connecting if it is anything other than the default.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|cs.port&lt;br /&gt;
|optional&lt;br /&gt;
|The port for the content server to bind to.&lt;br /&gt;
Defaults to ’41976′.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|save.interval&lt;br /&gt;
|optional&lt;br /&gt;
|The amount of time (in minutes) between autosaves.&lt;br /&gt;
Defaults to ’30′.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|npc.name.filter&lt;br /&gt;
|optional&lt;br /&gt;
|Regular expression used for new NPC name validation.&lt;br /&gt;
Defaults to [0-9A-Za-z]{3,}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|npc.name.filter.error&lt;br /&gt;
|optional&lt;br /&gt;
|The error message returned if the new NPC name validation fails.&lt;br /&gt;
Defaults to ‘Name must consist of alpha numeric characters and must also be longer than 2 characters.’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name.filter&lt;br /&gt;
|optional&lt;br /&gt;
|Regular expression used for new player character name validation.&lt;br /&gt;
Defaults to [0-9A-Za-z\&amp;quot;\'\s]{3,}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name.filter.error&lt;br /&gt;
|optional&lt;br /&gt;
|The error message returned if the new player character name validation fails.&lt;br /&gt;
Defaults to ‘Name must consist of alpha numeric characters,’,\”,-,whitespace and must also be longer than 2 characters.’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|add.manifest.extensions&lt;br /&gt;
|optional&lt;br /&gt;
|A comma delimited list of any additional file extensions (with the ‘.’) that the dynamic manifest generator should pick up.&lt;br /&gt;
By default, .js, .json , .png , .html, .css are included in manifest generation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|allow.guests&lt;br /&gt;
|optional&lt;br /&gt;
|Set to false to block access by guest accounts.&lt;br /&gt;
Defaults to true.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configuring your world==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The world’s configuration is stored in the &amp;lt;code&amp;gt;lugdunonServer/dat/WORLD&amp;lt;/code&amp;gt; directory in a file named &amp;lt;code&amp;gt;world.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The available options for the worlds configuration are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Name&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|required&lt;br /&gt;
|The world’s name. Shown on server select screen.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|chunk.size&lt;br /&gt;
|optional&lt;br /&gt;
|The size in tiles for a chunk’s dimensions (width / height)&lt;br /&gt;
Defaults to 8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|seed&lt;br /&gt;
|optional&lt;br /&gt;
|The random seed used in many of lugdunon’s functions. May be a string or integer.&lt;br /&gt;
Defaults to the time in milliseconds of the server’s start.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tileset.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom tileset config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.Tileset’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ui.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom ui config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.UI’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|icon.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom icon config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.Icons’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|etc.config&lt;br /&gt;
|optional&lt;br /&gt;
|Custom etc config location.&lt;br /&gt;
Defaults to ‘net.lugdunon.world.defaults.etc’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|character.stats&lt;br /&gt;
|optional&lt;br /&gt;
|Custom character stats module location.&lt;br /&gt;
Defaults to ‘net.lugdunon.state.character.advancement.def.DefaultCharacterStats’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|default.console.cmd&lt;br /&gt;
|optional&lt;br /&gt;
|Default console command (if no / command is sent).&lt;br /&gt;
Defaults to ‘yell’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|json.write.readable&lt;br /&gt;
|optional&lt;br /&gt;
|Boolean value that determines whether to write all JSON data to disk in human readable or compact form.&lt;br /&gt;
Defaults to ‘true’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ping.interval&lt;br /&gt;
|optional&lt;br /&gt;
|The interval (in milliseconds) between server to client ping commands.&lt;br /&gt;
Defaults to ‘6000’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|chunk.size&lt;br /&gt;
|optional&lt;br /&gt;
|The map chunk size.&lt;br /&gt;
Defaults to ‘8’.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|environment.second.length&lt;br /&gt;
|optional&lt;br /&gt;
|The length of an in game second (in milliseconds).&lt;br /&gt;
Defaults to ‘50’. This equates to an in game day length of 72 real time minutes.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server Hosting|Running your own server]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-05-08T19:00:57Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.4)&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|In Progress (0.8.4)&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-05-08T18:59:44Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|In Progress (0.8.4)&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|In Progress (0.8.4)&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-05-08T18:58:25Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-05-08T18:58:12Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Main_Page"/>
				<updated>2017-05-08T18:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mf-wikiheader&amp;quot; style=&amp;quot;margin: auto; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #E4F0F7; padding: 8px; margin: 3px; color: #033251; text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 162%&amp;quot;&amp;gt;Welcome to the official '''Lugdunon Wiki''',&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;the comprehensive reference written and maintained by the players.&amp;lt;div style=&amp;quot;border: 1px solid #AFCFE2; margin-top: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;padding: 5px; background-color:#ffffff; text-align: center;&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://lugdunon.net/ '''Official Site''']'''&amp;lt;br /&amp;gt;'''[http://forums.lugdunon.net/ Official Forum]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Wiki Links&amp;lt;hr /&amp;gt;[[:Category:Things_to_do|Things to do]] • [[LugdunonWiki:Rules|Rules]] • [[LugdunonWiki:Community|Community]] • [[LugdunonWiki:Attributions|Attributions]] • [[LugdunonWiki:Contact_Us|Contact Us]] &amp;lt;/span&amp;gt;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; | &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://forums.lugdunon.net/ '''Buy Lugdunon''']&amp;lt;br /&amp;gt;[http://client.lugdunon.net/ Play Lugdunon now]&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=100% &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Engine}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] is an entirely moddable MMO in which YOU shape the world you want to play in! Run your own server and forge your own continent from the sea. Create creatures with the built in NPC editing tool. Define your own skills, achievements, and items. Invite your friends to come and experience custom quest chains, or just get together - no matter where you are - and defeat a few monsters. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[How_to_Play|How to Play]]&lt;br /&gt;
*[[Macros|Macros]]&lt;br /&gt;
*[[Macro_documentation|Making your own macros]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Running_your_own_server|Running your own server]]&lt;br /&gt;
*[[How_to_GM|How to GM]]&lt;br /&gt;
*[[Console_Commands|Console Commands]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Modding_Overview|Modding Overview]]&lt;br /&gt;
*[//lugdunon.net/cookbook.html Cookbook]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| class=&amp;quot;plainlinks&amp;quot; rowspan=2 style=&amp;quot;width:20%; border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px 7px 7px 7px; margin: 5px 3px 5px 3px; &amp;quot; | &amp;lt;div style=&amp;quot;font-weight:bold; font-size:120%; text-align:center; background: #E4F0F7; color: #033251; margin:3px 0 7px 0; padding:5px 0;&amp;quot;&amp;gt;Development&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Past Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Release_0.8.4|0.8.4 (07/05/2017)]]&lt;br /&gt;
* [[Release_0.8.3|0.8.3 (28/02/2017)]]&lt;br /&gt;
* [[Release_0.8.2|0.8.2 (12/08/2016)]]&lt;br /&gt;
* [[Release_0.8.1|0.8.1 (10/11/2015)]]&lt;br /&gt;
* [[Release_0.8.0.2|0.8.0.2 (08/03/2015)]]&lt;br /&gt;
* [[Release_0.8.0.1|0.8.0.1 (08/02/2015)]]&lt;br /&gt;
* [[Release_0.8.0|0.8.0 (07/13/2015)]]&lt;br /&gt;
* [[Release_0.7.2|0.7.2 (07/11/2014)]]&lt;br /&gt;
* [[Release_0.7.1|0.7.1 (04/09/2014)]]&lt;br /&gt;
* [[Release_0.7.0|0.7.0 (28/07/2014)]]&lt;br /&gt;
* [[Release_0.6.4|0.6.4 (30/05/2014)]]&lt;br /&gt;
* [[:Category:Releases|Older Versions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Upcoming Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Upcoming_Release|0.8.5 (No ETA)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-bottom:0&amp;quot;&amp;gt;'''Future Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Feature_Roadmap|Feature Roadmap]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;border: 1px solid #AFCFE2; border-radius: 5px; -moz-border-radius: 5px; padding: 7px;&amp;quot; | &amp;lt;div id=&amp;quot;mf-game&amp;quot;&amp;gt; {{heading|Official Campaign}}&lt;br /&gt;
[[LugdunonWiki:About|Lugdunon]] does not even require you to build your own world. Two servers complete with quests, items, spells, skills, crafting, combat and more are up and running to experience the game's charming mechanics in the form of a traditional MMO. The [[Official_Campaign|Official Campaign]] is created and regularly updated by the developers themselves to ensure that every player always a place to enjoy themselves.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;padding-top: 0; padding-left: 12%;&amp;quot;&lt;br /&gt;
|- valign=top &lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Skills|Official Skills]]&lt;br /&gt;
*[[Official_Quests|Official Quests]]&lt;br /&gt;
*[[Official_Achievements|Official Achievements]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_Crafting|Official Crafting]]&lt;br /&gt;
*[[Official_Items|Official Items]]&lt;br /&gt;
*[[Official_Spells|Official Spells]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
*[[Official_NPCs|Official NPCs]]&lt;br /&gt;
*[[Official_Monsters|Official Monsters]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.4</id>
		<title>Release 0.8.4</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.4"/>
				<updated>2017-05-07T15:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''07/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Updated MacOS disk image background to reflect new graphic style.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-05-07T15:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 07/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-05-07T15:16:02Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Replaced content with &amp;quot;{{engine}}  '''''0.8.5'''''   ''Last Updated: 07/05/2017''    Mods altered in this update:    Server mods altered in this update:     /etc files altered in this update:   ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.5'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 07/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.4</id>
		<title>Release 0.8.4</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.4"/>
				<updated>2017-05-02T18:05:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Updated MacOS disk image background to reflect new graphic style.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-05-02T18:04:48Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Updated MacOS disk image background to reflect new graphic style.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.4</id>
		<title>Release 0.8.4</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.4"/>
				<updated>2017-05-01T14:54:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.3</id>
		<title>Release 0.8.3</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.3"/>
				<updated>2017-05-01T14:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.3'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''28/02/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*commands.json&lt;br /&gt;
*items.json&lt;br /&gt;
*names.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json - net.lugdunon.server.worldgen.procedural&lt;br /&gt;
*instances/0/placeableItemCache.json&lt;br /&gt;
*instances/0/terrain.dat&lt;br /&gt;
*instanceTemplates/HOUSE_AUNT_PERU/terrain.dat&lt;br /&gt;
*instanceTemplates/HOUSE_MEDIUM_LIMESTONE/instance.json&lt;br /&gt;
*instanceTemplates/HOUSE_MEDIUM_LIMESTONE/npcCache.json&lt;br /&gt;
*instanceTemplates/HOUSE_MEDIUM_LIMESTONE/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/HOUSE_MEDIUM_LIMESTONE/terrain.dat&lt;br /&gt;
*instanceTemplates/HOUSE_MEDIUM_LIMESTONE/waypointCache.json&lt;br /&gt;
*instanceTemplates/LYCEUM_SHINING_HEART/terrain.dat&lt;br /&gt;
*instanceTemplates/MANOR_BIBRACTE/placeableItemCache.json&lt;br /&gt;
*instanceTemplates/MANOR_BIBRACTE/terrain.dat&lt;br /&gt;
*instanceTemplates/TAVERN_BIBRACTE/terrain.dat&lt;br /&gt;
*instanceTemplates/LYCEUM/terrain.dat - net.lugdunon.server.worldgen.procedural&lt;br /&gt;
*instanceTemplates/MANOR/placeableItemCache.json - net.lugdunon.server.worldgen.procedural&lt;br /&gt;
*instanceTemplates/MANOR/terrain.dat - net.lugdunon.server.worldgen.procedural&lt;br /&gt;
*instanceTemplates/TAVERN/terrain.dat - net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*server 0.8.2 -&amp;gt; 0.8.3.&lt;br /&gt;
*client-web 0.8.2 -&amp;gt; 0.8.3.&lt;br /&gt;
*client 0.3.1 -&amp;gt; 0.3.2.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.0.7 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.5 -&amp;gt; 0.0.6&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.11 -&amp;gt; 0.0.12&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.5 -&amp;gt; 0.0.6&lt;br /&gt;
*Tupelo tileset / ui / icons merged with Clover.&lt;br /&gt;
*Added support for more cipher suites on the Auth server for better compatibility with later java versions.&lt;br /&gt;
*Added support for more cipher suites on the Public Listing server for better compatibility with later java versions.&lt;br /&gt;
*Fixed a stability issue with the Public Listing server that was causing intermittent crashes.&lt;br /&gt;
*Fixed some usability issues with the account management pages on lugdunon.net.&lt;br /&gt;
*Added an edit button asset.&lt;br /&gt;
*Updated all housing and tree graphics.&lt;br /&gt;
*Updated some of the crop graphics.&lt;br /&gt;
*Updated wooden, stone, and marble floor graphics.&lt;br /&gt;
*Updated brick wall interiors.&lt;br /&gt;
*Updated all exterior walls and tiles.&lt;br /&gt;
*Updated table graphics.&lt;br /&gt;
*Updated trestle table graphics.&lt;br /&gt;
*Updated simple bridge graphics.&lt;br /&gt;
*Updated interior stone stair graphics.&lt;br /&gt;
*Updated stone fence / gate graphics.&lt;br /&gt;
*Updated icons for the three small craftable houses.&lt;br /&gt;
*Added graphics for alder trees.&lt;br /&gt;
*Added graphics for bars / mercantile counters.&lt;br /&gt;
*Added graphics for exterior steps.&lt;br /&gt;
*Added icon for alder seed.&lt;br /&gt;
*Added icon for stone fence item.&lt;br /&gt;
*Added icon for stone gate item.&lt;br /&gt;
*Added icon for medium limestone house.&lt;br /&gt;
*net.lugdunon.state.character.movement.free.FreeDirectionalMovement.handleDirectionalMovement now accounts for latency.&lt;br /&gt;
*Fixed housing and tree placement in overland instance.&lt;br /&gt;
*Corrected some terrain layers to match new housing style.&lt;br /&gt;
*Fixed flooring in interior instances to match new flooring designs.&lt;br /&gt;
*Added HOUSE_MEDIUM_LIMESTONE  instance template.&lt;br /&gt;
*Moved research bench in manor further away from chair.&lt;br /&gt;
*Added net.lugdunon.command.core.edit.GetItemDefCommand.&lt;br /&gt;
*Added net.lugdunon.command.core.edit.SetItemDefCommand.&lt;br /&gt;
*Added net.lugdunon.command.core.play.InstanceTriggerCompletionCommand.&lt;br /&gt;
*Added a new brigand suffix to etc/names.json.&lt;br /&gt;
*Added gender support for name lists.&lt;br /&gt;
*Added recipes for stone gate and stone fence.&lt;br /&gt;
*Rebuilt all housing placeable tiling to use new graphic style.&lt;br /&gt;
*Rebuilt all tree placeable tiling to use new graphic style.&lt;br /&gt;
*Added alder tree inventory and placeable items.&lt;br /&gt;
*Added alder seed item.&lt;br /&gt;
*Added medium limestone house inventory and placeable items.&lt;br /&gt;
*Added Alder trees to Forest biome and adjusted spawn chances accordingly.&lt;br /&gt;
*Added Alder trees to Piedmont biome and adjusted spawn chances accordingly.&lt;br /&gt;
*Upped npc limit in Beach biome from 15 to 45.&lt;br /&gt;
*Upped npc limit in Meadow biome from 10 to 30.&lt;br /&gt;
*Upped npc limit in Forest biome from 30 to 90.&lt;br /&gt;
*Upped npc limit in Piedmont biome from 15 to 45.&lt;br /&gt;
*Upped npc limit in Taiga biome from 15 to 45.&lt;br /&gt;
*Upped npc limit in Steppe biome from 15 to 45.&lt;br /&gt;
*Upped npc limit in Alpine biome from 15 to 45.&lt;br /&gt;
*Adjusted house and house lamp locations to match new brick home design in the small home plots.&lt;br /&gt;
*Fixed a wrong-facing chair in the TAVERN instance template.&lt;br /&gt;
*Character creation now support random name and appearance generation.&lt;br /&gt;
*Fixed an issue that was preventing certain audio cues to play.&lt;br /&gt;
*deferredRendering UI Setting is now enabled by default on all platforms.&lt;br /&gt;
*Added item editor icon.&lt;br /&gt;
*Added mod editor dialog (does nothing at the moment).&lt;br /&gt;
*net.lugdunon.command.Client.fetchServerStatus(serverAddress,context,callback) ( game.client.fetchServerStatus(serverAddress,context,callback) ) now returns the web socket it creates.&lt;br /&gt;
*Added net.lugdunon.input.Input.LAYERS.DIALOG to the client-side api.&lt;br /&gt;
*Added net.lugdunon.item.def.plugin.ItemDefPlugin to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.item.def.plugin.PlaceableItemDefPlugin to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.item.def.ItemDef to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.item.def.ItemDefDetermination to the client-side codebase.&lt;br /&gt;
*Fixed an issue with net.lugdunon.item.renderer.DefaultRenderer.renderTooltip() showing tooltips for paired items with no UDD.&lt;br /&gt;
*Removed dead code in net.lugdunon.item.Item.init().&lt;br /&gt;
*Added net.lugdunon.states.character.options.BaseOption.spriteDetailsUpdated(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.BaseOption.newImageHashReturned(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.NameOption.nameUpdated(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.NameOption.handleRandomName() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.SpriteLayerOption.spriteDetailsUpdated(res) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.SpriteLayerOption.setOption(i) to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.options.SpriteLayerOption.initLayerFromAppearance() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.character.CharacterCreator.handleRandomizeAppearance() to the client-side api.&lt;br /&gt;
*Added net.lugdunon.states.list.ServerList.suspend() to the client-side api.&lt;br /&gt;
*Added random button for player name.&lt;br /&gt;
*Added random button for player appearance.&lt;br /&gt;
*Fixed some issues with the server list items continuing to attempt refresh even after server list is disposed of.&lt;br /&gt;
*Fixed an issue in net.lugdunon.states.tiledGame.chunk.ChunkManager.initDeferredRendering() that was causing an error if you paged off a chunk that is currently updating.&lt;br /&gt;
*Added net.lugdunon.ui.editorUtils.ValueFromRandomDefinition.html to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.icon.edit.ItemEditorIcon to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.icon.edit.ModEditorIcon to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.placeable.EditPlaceableLinksDialog.html to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.placeable.EditPlaceableLinksDialog to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.placeable.PlaceableItemLayoutEditorDialog.html to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.placeable.PlaceableItemLayoutEditorDialog to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.ui.placeable.PlaceableItemStateDetails.html to the client-side codebase.&lt;br /&gt;
*Removed net.lugdunon.ui.politics.panel.SummaryPanel from net.lugdunon.ui.politics.PoliticsDialog.&lt;br /&gt;
*net.lugdunon.ui.quest.progress.QuestProgressDialog.setCurrentConversation(conversationId) now makes all response condition requests in one batched call to CORE.COMMAND.DIALOG.RESPONSE.CONDITION.&lt;br /&gt;
*net.lugdunon.ui.Dialog calls now support dialog-meta metadata tags.&lt;br /&gt;
*net.lugdunon.ui.Dialog.ok now accepts a formData argument for form validation.&lt;br /&gt;
*net.lugdunon.ui.Dialog.confirm now accepts a formData argument for form validation.&lt;br /&gt;
*Added net.lugdunon.ui.EditorUtils to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.Math.matrix(rows, cols, defaultValue) to the client-side api for creating and populating a multi-dimensional indexed array.&lt;br /&gt;
*Added Namespace.registerCustomMetaTags() to the client-side api.&lt;br /&gt;
*Added Namespace.metaAttrs(el) to the client-side api.&lt;br /&gt;
*Added Namespace.attributesOnEl(el) to the client-side api.=&lt;br /&gt;
*Added Array.fillWith(v) to the client-side api.&lt;br /&gt;
*Added Array.sizeToDimension(dim,v) to the client-side api.&lt;br /&gt;
*Added DivHtmlElement.extract() to the client-side api for extracting form data (in an associative array) from child nodes.&lt;br /&gt;
*Added game.getItemDefDeterminator() to the client-side api.&lt;br /&gt;
*Added lugdunon custom meta tag.&lt;br /&gt;
*Added dialog custom meta tag.&lt;br /&gt;
*Added multiple field styles (input, select, textArea) with support for (disabled,readonly,and readonly='clickable').&lt;br /&gt;
*Added support for an NPC long update mode. When enabled, NPCs that are more than a 45 tile radius from a PC will update their state on a much slower time scale.&lt;br /&gt;
*Added boolean server property npc.long.update.mode.enabled. When set to true, NPCs will enter a long update mode when out of range of PCs.&lt;br /&gt;
*Fixed an issue with NPC behaviours throwing an exception when checking factions on a character with no character stats defined.&lt;br /&gt;
*Fixed an issue with NPCs aggroing across biome boundaries.&lt;br /&gt;
*Fixed an issue with NPCs not properly coming out of long update mode when a PC is present.&lt;br /&gt;
*Fixed an issue with NPCs not properly updating their behaviour state.&lt;br /&gt;
*Fixed an issue in net.lugdunon.state.item.trigger.player.InstanceTransitionPlayerTrigger that was allowing players to move after an instance transition was triggered.&lt;br /&gt;
*Server now supports more cipher suites when contacting auth and public listing servers in order to be better supported in later java versions.&lt;br /&gt;
*JS minify task during build process now relies on local command rather than a third party REST service.&lt;br /&gt;
*net.lugdunon.client.command.ClientCommandBridge now attempts to create directory chain if any are missing.&lt;br /&gt;
*net.lugdunon.command.core.character.PlayerCharacterManagementCommand now supports random generation for both name and appearance.&lt;br /&gt;
*net.lugdunon.command.core.condition.DialogResponseConditionCommand now supports the batching of all response conditions into a single request.&lt;br /&gt;
*Removed dead code in net.lugdunon.core.console.gm.GiveItemCommand.&lt;br /&gt;
*Added net.lugdunon.command.core.play.InstanceTriggerCompletionCommand to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.ThreadedCommand to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.ThreadedServerInvokedCommand to the server-side codebase.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerPathCommand now supports a overrideBiomeRestriction boolean property that allows a biome-bound NPC to temporarily ignore the biome restriction when moving.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand is now threaded.&lt;br /&gt;
*net.lugdunon.command.core.ConnectToServerCommand is now threaded.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand is now threaded.&lt;br /&gt;
*net.lugdunon.state.character.behavior.core.AggroBehavior.dumpState() now provides more information.&lt;br /&gt;
*Added net.lugdunon.state.character.NonPlayerCharacter.isCurrentlyInLongUpdate() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.ItemDefinitions.setItemDef(JSONObject itemDef) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.ItemDefinitions.setItem(Item item) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.ItemDefinitions.inheritFromEdited(JSONArray initial) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.name.list.NamesList.getMasculineNames() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.name.list.NamesList.getFeminineNames() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.name.INameProvider.provideNameForGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.name.ListNameProvider.provideNameForGender() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.sprite.layer.LayerOption.getProps() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(Collection&amp;lt;?&amp;gt; collection) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(Random random, Collection&amp;lt;?&amp;gt; collection) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(Object[] array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(Random random, Object[] array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(JSONArray array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomIndexFrom(Random random, JSONArray array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(List&amp;lt;?&amp;gt; list) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(Random random, List&amp;lt;?&amp;gt; list) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(Object[] array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(Random random, Object[] array) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(JSONArray array) throws JSONException to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.randomItemFrom(Random random, JSONArray array) throws JSONException to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.fudge(int value, double fudgePercent) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.fudge(long value, double fudgePercent) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.fudge(double value, double fudgePercent) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FastMath.fudge(float value, double fudgePercent) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.delete(String fileName) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.util.FileUtils.delete(String fileName, boolean absolute) to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.SmallHomePlot now gets its house location from the JSON definition.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.SmallHomePlot now gets its house lamp location from the JSON definition.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot now adds more path to cover for the change in the tavern front.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.town.TavernPlot moved a wall sconce to cover for the change in the tavern front.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator altered pools to cover for the change in the lyceum front.&lt;br /&gt;
*net.lugdunon.world.biome.settlement.settlements.generators.LyceumSettlementGenerator altered topiary (hedges) to cover for the change in the lyceum front.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfCharactersInRangeOf(int range, Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfCharactersInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfCharactersInRange(int range, Point location, Character exclude) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.charactersInRangeOf(int range, Character c) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.charactersInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.charactersInRange(int range, Point location, Character exclude) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfPCsInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfPCsInRangeOf(int range, PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfPCsInRange(int range, Point location, PlayerCharacter exclude) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.pcsInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.pcsInRangeOf(int range, PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.pcsInRange(int range, Point location, PlayerCharacter exclude) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfNPCsInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfNPCsInRangeOf(int range, NonPlayerCharacter npc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.numberOfNPCsInRange(int range, Point location, NonPlayerCharacter exclude) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.npcsInRange(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.npcsInRangeOf(int range, NonPlayerCharacter npc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.Instance.npcsInRange(int range, Point location, NonPlayerCharacter exclude) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.command.core.play.PlaceSlateCommand.&lt;br /&gt;
*Removed net.lugdunon.command.core.play.PlaceTurfCommand.&lt;br /&gt;
*Added net.lugdunon.command.core.play.PlaceGroundcoverCommand.&lt;br /&gt;
*Phased placeable items can no longer be violated (by terrain layers or other placeable items).&lt;br /&gt;
*Added net.lugdunon.state.item.action.SandActionHandler to the client-side code base.&lt;br /&gt;
*net.lugdunon.state.item.action.SlateActionHandler now calls CORE.COMMAND.PLACE.GROUNDCOVER.&lt;br /&gt;
*net.lugdunon.state.item.action.TurfActionHandler now calls CORE.COMMAND.PLACE.GROUNDCOVER.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.isPhased() to the server-side API.&lt;br /&gt;
*&amp;quot;Pile of Sand&amp;quot; inventory item can now be placed upon the ground (including over water). Useful for getting off of a desert island, or reclaiming coastal land.&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.4</id>
		<title>Release 0.8.4</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.4"/>
				<updated>2017-05-01T14:53:45Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Release_0.8.4</id>
		<title>Release 0.8.4</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Release_0.8.4"/>
				<updated>2017-05-01T14:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: Created page with &amp;quot;{{engine}}  '''''0.8.4'''''   ''01/05/2017''    Mods altered in this update: *net.lugdunon.state.character.movement.free *net.lugdunon.elevation.editor.simple *net.lugdunon.wo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Upcoming_Release</id>
		<title>Upcoming Release</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Upcoming_Release"/>
				<updated>2017-05-01T14:50:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
'''''0.8.4'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Last Updated: 01/05/2017''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mods altered in this update:&lt;br /&gt;
*net.lugdunon.state.character.movement.free&lt;br /&gt;
*net.lugdunon.elevation.editor.simple&lt;br /&gt;
*net.lugdunon.world.defaults.audio&lt;br /&gt;
*net.lugdunon.world.defaults.environment&lt;br /&gt;
*net.lugdunon.world.defaults.character&lt;br /&gt;
*net.lugdunon.world.defaults.compendium&lt;br /&gt;
*net.lugdunon.world.clover.tui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server mods altered in this update:&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc files altered in this update:&lt;br /&gt;
*achievements.json&lt;br /&gt;
*areaOfEffectDefinitions.json&lt;br /&gt;
*commands.json&lt;br /&gt;
*environmentListeners.json&lt;br /&gt;
*items.json&lt;br /&gt;
*metrics.json&lt;br /&gt;
*recipes.json&lt;br /&gt;
*instances/0/instance.json&lt;br /&gt;
*instanceTemplates/HIGHLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/LOWLAND_CAVERN/instance.json&lt;br /&gt;
*instanceTemplates/MIDLAND_CAVERN/instance.json&lt;br /&gt;
*vendors.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Release Notes:&lt;br /&gt;
*Server 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*Client 0.8.3 -&amp;gt; 0.8.4.&lt;br /&gt;
*net.lugdunon.state.character.movement.free 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.elevation.editor.simple 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.audio 0.0.2 -&amp;gt; 0.0.3.&lt;br /&gt;
*net.lugdunon.world.defaults.environment 0.0.4 -&amp;gt; 0.1.0.&lt;br /&gt;
*net.lugdunon.world.defaults.character 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.world.defaults.compendium 0.0.5 -&amp;gt; 0.0.6.&lt;br /&gt;
*net.lugdunon.server.worldgen.defaults 0.0.12 -&amp;gt; 0.0.13.&lt;br /&gt;
*net.lugdunon.server.worldgen.procedural 0.0.6 -&amp;gt; 0.0.7.&lt;br /&gt;
*net.lugdunon.world.clover.tui 0.1.0 -&amp;gt; 0.1.1.&lt;br /&gt;
*Weather and seasonal temperature is now in game. Players can experience various weather events (watch out for lightning!).&lt;br /&gt;
*Precipitation level and temperature fluctuations now affect the viability and growth rate of crops and other flora.&lt;br /&gt;
*Players have access to researchable spells that allow the alteration of local weather (Snow, Rain, Fog, and Clear weather).&lt;br /&gt;
*Players can now excavate new passages in caverns, and uncover resource nodes using a new craftable item call the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Players can also now dig into cliffsides in the overworld to uncover resource nodes and ruin or cavern entrances using the &amp;quot;Excavator&amp;quot;.&lt;br /&gt;
*Added EXCAVATOR.EXPLOSION audio asset.&lt;br /&gt;
*Added PLANT.SQUISH audio asset.&lt;br /&gt;
*Cleaned up unneeded code in net.lugdunon.elevation.editor.simple.TerrainElevation.updateElevation(Account a, int x, int y, int w, int h, byte elevation)&lt;br /&gt;
*Characters should no longer appear to climb walls when using keyboard movement.&lt;br /&gt;
*Fixed transition and impassability tiles for the tent.&lt;br /&gt;
*Fixed interior tiles for tent instance.&lt;br /&gt;
*Fixed a null pointer issue when removing placeable item instances.&lt;br /&gt;
*Fixed an issue where instances of PlaceableItemUpdateable were not getting unregistered when a placeable item instance was removed.&lt;br /&gt;
*Fixed several instances where range checks were occurring without taking map size / wrapping into account.&lt;br /&gt;
*Fixed an issue that caused an instance location area for the main player when first logging in and the player is not in the overworld instance.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.character.DefaultCharacterStats.awardAchievement(achievementId,ts) that was causing issues when awarding achievement.&lt;br /&gt;
*Fixed an issue where instance transition dialog would appear when player didn't have access to instance, thereby soft locking the game client.&lt;br /&gt;
*Fixed an issue net.lugdunon.command.core.ConnectToServerCommand that was causing a client hang.&lt;br /&gt;
*Fixed an issue in net.lugdunon.asset.DoubleBufferedAudio that was causing improper playback on looped samples.&lt;br /&gt;
*Fixed an issue in net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() that was causing mouseover labels to display incorrectly for recipe slots.&lt;br /&gt;
*Fixed an issue in net.lugdunon.world.defaults.environment.Environment that was causing &amp;quot;secondLength&amp;quot; values defined in env.json to not override the default value.&lt;br /&gt;
*Fixed an issue with net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getTimeOfDayAsPercent() not returning the correct value.&lt;br /&gt;
*Fixed some null pointer issues with the default environment implementation when attempting to access a null biome.&lt;br /&gt;
*Reindexed months in net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar such that Samonios is the equivalent of June and not May.&lt;br /&gt;
*Added environment.snow.accumulation.bailout world property. Indicates the number of times a biome will search for a suitable point for snow to accumulate. Defaults to 16.&lt;br /&gt;
*Added environment.snow.accumulation.interval world property. Indicated the time interval at which snow will accumulate, or dissipate. Defaults to 5000 (5 seconds).&lt;br /&gt;
*IUpdateables are no longer updated before server has completed startup.&lt;br /&gt;
*net.lugdunon.world.terrain.Terrain.getElevationImageData() now auto contrasts output.&lt;br /&gt;
*Added net.lugdunon.state.World.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.instance.TransientInstanceCache.listActiveInstances() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.terrain.Terrain.setBiomeAt(int x, int y, byte biome) to the server-side API.&lt;br /&gt;
*Biome data can now be dynamically updated in a persistent manner at runtime.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.registerEnvironmentListener(IEnvironmentListener  el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.IEnvironment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSecondsInMinute() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMinutesInHour() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getHoursInDay() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getDaysInWeek() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getWeeksInMonth() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMonthsInSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonsInYear() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getMaximumAllowableSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSolarPosition() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonDetailName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonName() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeason() to the client/server-side API.&lt;br /&gt;
*Added net.lugdunon.world.environment.calendar.BaseCalendar.getSeasonProgress() to the client/server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.world.biome.Biome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.biome.Biome.getHardinessZone() to the server-side API.&lt;br /&gt;
*net.lugdunon.world.biome.Biome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*net.lugdunon.world.biome.dynamic.DynamicBiome now supports post generation (runtime) addition of biome-bound placeable items.&lt;br /&gt;
*Added net.lugdunon.world.environment.climate.BaseClimateInformation to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeather to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.weather.BaseWeatherForecast to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.IEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.LightningStrikeEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event.SnowAccumulatedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.event. SnowMeltedEnvironmentListener to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.HardinessZone to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.SeasonalClimateProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureGradient to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.TemperatureSensitivity to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.Weather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.environment.hz.WeatherProfile to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.util.audio.AudioDefinition(String audio, double volume, short falloffRadius, byte falloffProgression) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.getConfigArray(String configPath) from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.SubsystemBase.saveConfigArray(String configPath, JSONArray config) from the server-side API.&lt;br /&gt;
*Mods now load and store item data as JSON instead of instantiating an Item object.&lt;br /&gt;
*Mods now support environment listeners defined as a list of strings (class names) in a JSON array identified as &amp;quot;environmentListeners&amp;quot;.&lt;br /&gt;
*Moved net.lugdunon.state.metric.combat.PlayerDeathMetric to net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric refactored to allow for proper association of environmentally and placeable item instance caused deaths.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemRemovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.temReceivedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemPlacedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemMovedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemLootedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.item.ItemGatheredMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropHarvestedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.CropPlantedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.DrinkUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodConsumedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.action.FoodUsedMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.NPCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.general.PlayerDeathMetric now correctly passes the proper transientValue object to its callListeners(Object metricValue, Object transientValue) method.&lt;br /&gt;
*net.lugdunon.state.metric.combat.PCSlainMetric reports &amp;quot;Yourself&amp;quot; as the slain PC in the case of self-sayings.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstanceLightningStrikeEnvironmentListener to the server-side codebase. Kills or changes a placeable item instances state (definable in the item's definition) within a radius of 4.&lt;br /&gt;
*Placeable item instances now support a state prefix. This allows for multiple different state progressions, making seasonal changes in flora possible.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getStatePrefix() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.setStatePrefix(String statePrefix) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.getCurrentBaseState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemInstance.removed() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.getPlaceableItemReference(Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(Point location, double range) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.PlaceableItemCache.listAllItemsInRangeOf(int range, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isTemperatureSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isPrecipitationSensitive() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getTemperatureSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getPrecipitationSensitivity() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSeasonal() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.isSusceptibleToLightning() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.Item.getLightningSusceptibility() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.item.IPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*net.lugdunon.state.item.PlaceableItemInstance.PlaceableItemInstanceUpdateable externalized to net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable.&lt;br /&gt;
*net.lugdunon.state.item.updateable.PlaceableItemInstanceUpdateable now tracks seasons, precipitation, and temperature changes to adjust states. Certain placeables will enter hibernation states or die if temperature exceeds a certain range. &lt;br /&gt;
*net.lugdunon.state.item.lifecycle.BaseItemLifecycleHandler.itemPlaced(PlaceableItemInstance placeable, JSONObject userDefinedData) creates a &amp;quot;seasonalBias&amp;quot; double property in the placeable item instance's user defined data. Seasonal bias determines how early or late a placeable item instance will undergo a seasonal change.&lt;br /&gt;
*Added net.lugdunon.state.item.action.ExcavatorActionHandler to the client-side codebase.&lt;br /&gt;
*PC slain metric will now be triggered for a player if a player's placed item caused the PCs death.&lt;br /&gt;
*NPC slain metric will now be triggered for a player if a player's placed item caused the NPCs death.&lt;br /&gt;
*Added net.lugdunon.state.character.CharacterLightningStrikeEnvironmentListener to the server-side codebase. Triggers a CORE.LIGHTNING.STRIKE area of effect centered at the lightning strike location.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_TRAPPED to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added  net.lugdunon.state.character.stats.ICharacterStats.HEALTH_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.character.stats.ICharacterStats.STAMINA_MODIFY_CAUSE_PLACEABLE_ITEM_INSTANCE to the server-side API.&lt;br /&gt;
*net.lugdunon.state.aoe.core.ExplosionAreaOfEffect's indiscriminate property now determines if the effect will target the character responsible. If set to true, the responsible party will be targeted as well.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.DestroyItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.crafting.CraftItemAchievement to the codebase.&lt;br /&gt;
*Added net.lugdunon.state.achievement.general.PlayerDeathAchievement to the codebase.&lt;br /&gt;
*Removed net.lugdunon.state.achievement.combat.PlayerDeathAchievement from the codebase.&lt;br /&gt;
*Added net.lugdunon.math.Location(long instanceId, int x, int y) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key, CharacterItemUse defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key, JSONObject defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key, JSONArray defaultValue) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getCharacterItemUse(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONObject(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.getJSONArray(String key) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setCharacterItemUse(String key, CharacterItemUse value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONObject(String key, JSONObject value) to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.command.CommandProperties.setJSONArray(String key, JSONArray value) to the server-side codebase.&lt;br /&gt;
*Removed net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc) from the server-side API.&lt;br /&gt;
*Added net.lugdunon.command.Command.inRange(int range, Point loc, Point playerLoc, short terrainSize) to the client-side API.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand now sends player's instance id.&lt;br /&gt;
*net.lugdunon.command.core.LoadCharacterCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.ClientExecutionCommand now supports an &amp;quot;accounts&amp;quot; property, which is a list of active account names to send the command to.&lt;br /&gt;
*net.lugdunon.command.core.player.PlayerMoveCommand if the move has resulted in the player crossing to a new hardiness zone.&lt;br /&gt;
*net.lugdunon.command.core.play.InstanceTransitionCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.console.gm.GameModeCommand will initiate a total weather update on the client.&lt;br /&gt;
*net.lugdunon.command.core.play.ConsumeFoodCommands now properly distinguishes between stamina, stamina/health, and health restorative foods.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now ignores impassable tiles.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now sets its cause as a character item use.&lt;br /&gt;
*net.lugdunon.command.core.play.UseShearsCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.TillEarthCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowPenguinEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.ThrowEggCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.RangedWeaponFireCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.PlaceGroundcoverCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.OpenAnimalBarrelCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillMugCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.FillBucketCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.play.CharacterInteractionCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.inventory.MoveInventoryItemCommand now implements a proper wrapping range check.&lt;br /&gt;
*net.lugdunon.command.core.console.LocCommand now reports temperature (in celsius and fahrenheit) at the location.&lt;br /&gt;
*Added game.getScreenShift() to the client-side API. Screen shift is the difference in screen location between the previous and current frame.&lt;br /&gt;
*Added Number.toTemperatureString(decimalPlaces) to the client-side API&lt;br /&gt;
*Added Number.toFahrenheit() to the client-side API.&lt;br /&gt;
*net.lugdunon.ui.spellbook.SpellbookDialog.showSchool(index) now checks again spell school and not item sub type.&lt;br /&gt;
*net.lugdunon.ui.recipe.RecipeEditorDialog.reconfigureCraftingArea() now uses net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT for recipe slots to allow for middle button use (to toggle consumed flag).&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetched(data) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.secondaryFetch(props) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.state.compendium.Codex.fetch(props) to the client-side API.&lt;br /&gt;
*Removed net.lugdunon.state.compendium.Codex.fetch() from the client-side API.&lt;br /&gt;
*Added net.lugdunon.item.Item.isTemperatureSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.isPrecipitationSensitive() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getTemperatureSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.Item.getPrecipitationSensitivity() to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handleTemperatureSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.item.renderer.DefaultRenderer.handlePrecipitationSensitivityRender(d) to the client-side API. &lt;br /&gt;
*Added net.lugdunon.input.Input.TERTIARY_AWARE_CLICK_EVENT to the client-side API.&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetDateCommand (CORE.COMMAND.ENVIRONMENT.SET.DATE).&lt;br /&gt;
*Added input validation for net.lugdunon.world.defaults.environment.command.SetTimeOfDayCommand (CORE.COMMAND.ENVIRONMENT.SET.TOD).&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Game.css.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.makeWeather(id,clazz,initData) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.hasWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.clearWeather(id) to the client-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getClimateInformation() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentWorldwideWeatherForecast() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getWeatherForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForZone(HardinessZone zone) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForLocation(Location location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getTemperatureForBiome(Biome biome) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getCurrentMeanTemperature() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getHardinessZone(int zoneId) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getItemStatePrefixForSeason(int season) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemUpdateThreshold() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.getPlaceableItemStatePrefix(PlaceableItemInstance pii) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.totalWeatherUpdate(PlayerCharacter pc) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.registerEnvironmentListener(IEnvironmentListener el) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.unregisterEnvironmentListener(String id) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.Environment.triggerEnvironmentEvent(String type, Object... args) to the server-side API.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemUpdateInterval integer property to env.json.&lt;br /&gt;
*Added tempMapGradient integer property to env.json.&lt;br /&gt;
*Added seasonalPlaceableItemStatePrefixes string array property to env.json.&lt;br /&gt;
*Added hardinessZones json (hardiness zone definition) array property to env.json.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.command.ManageWeatherCommand to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.spell.AlterWeatherActionHandler to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.tooltip.SunwheelTooltipExtension to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Fog to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Rain to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.Snow to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.CommandableWeather to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.weather.RainOrSnow to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.MONTHS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.SECONDS_IN_SEASON to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSolarPosition() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSecondsInMinute() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMinutesInHour() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getHoursInDay() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getDaysInWeek() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getWeeksInMonth() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMonthsInSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonsInYear() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getMaximumAllowableSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonDetailName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonName() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeason() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.calendar.SimpleGaulishCalendar.getSeasonProgress() to the server-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerOne.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.FogLayerTwo.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Lightning.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.NearThunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Precipitation.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Rain.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.mp3 to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.environment.assets.Thunder.ogg to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.character.DefaultCharacterStatsSystem.dumpState() to the server-side API.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.DateIndicator.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.Seasons.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.assets.SeasonsOverlay.png to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex.css to the codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.Codex to the client-side codebase.&lt;br /&gt;
*Added net.lugdunon.world.defaults.compendium.environment.CodexRESTHandler to the server-side codebase.&lt;br /&gt;
*Added areaOfEffectDefinitions.json to the etc static overwrite list.&lt;br /&gt;
*Added environmentListeners.json to the etc contents list.&lt;br /&gt;
*Added recipe for ITEM.KEG.LAGER.&lt;br /&gt;
*Added recipe for ITEM.RENNET.&lt;br /&gt;
*Added recipe for ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.&lt;br /&gt;
*Added recipe for FOOD.CHEESE.RICH.&lt;br /&gt;
*Added recipe for ITEM.EXCAVATOR.&lt;br /&gt;
*Added recipe for ITEM.COAL.DUST.&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Added item definition for .&lt;br /&gt;
*Removed metric net.lugdunon.state.metric.combat.PlayerDeathMetric.&lt;br /&gt;
*Added metric net.lugdunon.state.metric.general.PlayerDeathMetric.&lt;br /&gt;
*Added a new tree, the Alder.&lt;br /&gt;
*Oak trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Fir trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Rubber trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Alder trees now have separate states for summer, winter, spring, and fall.&lt;br /&gt;
*Trees are lightning susceptible, and will undergo a state change to the stump state if struck.&lt;br /&gt;
*Added &amp;quot;lager&amp;quot; state to BREW.KEG item. Dispenses Marisa's Loping Lager when used.&lt;br /&gt;
*Candles have a slightly larger light radius when placed.&lt;br /&gt;
*Yeast traps now have a chance to drop cultures.&lt;br /&gt;
*Yeast traps are now temperature sensitive and will enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Yeast traps have had their respawn time increased.&lt;br /&gt;
*Crops are now temperature sensitive. They will die in extreme temperatures and enter a hibernation state when the temperature drops too low.&lt;br /&gt;
*Crops are lightning susceptible, and will die when struck by lightning.&lt;br /&gt;
*All crops have had their respawn time increased.&lt;br /&gt;
*Added item DRINK.HORN.MUG.LAGER. Will bestow a speed buff when imbibed.&lt;br /&gt;
*Added item ITEM.BUCKET.CURDS.AND.WHEY.&lt;br /&gt;
*Added item ITEM.KEG.LAGER.&lt;br /&gt;
*Added item ITEM.CULTURE.&lt;br /&gt;
*Added item ITEM.RENNET.&lt;br /&gt;
*Added item ITEM.CULTURE.RICH.&lt;br /&gt;
*Added item ITEM.COAL.DUST.&lt;br /&gt;
*Added item ITEM.EXCAVATOR.&lt;br /&gt;
*Added item FOOD.CHEESE.&lt;br /&gt;
*Added item FOOD.CHEESE.RICH.&lt;br /&gt;
*Added net.lugdunon.command.core.play.ThrowExcavatorCommand.&lt;br /&gt;
*Fixed area of effect definitions to re-enable sound effects.&lt;br /&gt;
*Added CORE.EXCAVATOR.EXPLOSION area of effect definition.&lt;br /&gt;
*Added CORE.LIGHTNING.STRIKE area of effect definition.&lt;br /&gt;
*Added GENERAL.DESTROY.ITEM.CHEESE.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.LIGHTNING.0 achievement.&lt;br /&gt;
*Added GENERAL.PLAYER.DEATH.SELF.EXCAVATOR.0 achievement.&lt;br /&gt;
*Added CRAFT.MAKE.CHEESE.0 achievement.&lt;br /&gt;
*Removed COMBAT.PLAYER.DEATH.1 achievement.&lt;br /&gt;
*Added a &amp;quot;dynamicPlacementProbability&amp;quot; double 0.0-1.0 property to the net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy arguments to determine the probability that an item will be placed due to runtime triggers.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.GriddedPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.item.placement.metazelda. MetazeldaDungeonPlacementStrategy.placeItem(Terrain terrain, PlaceableItemCache placeableItemCache, Point location) to the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement() from the server-side API.&lt;br /&gt;
*Removed net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled() from the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.getNextItemForPlacement(boolean postGen) to the server-side API.&lt;br /&gt;
*Added net.lugdunon.server.worldgen.procedural.biome.MetazeldaDungeonBiome.itemPlacementCanceled(boolean postGen) to the server-side API.&lt;br /&gt;
*Added ITEM.RENNET item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE.RICH item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.CULTURE item to the COOKING.GOODS vendor.&lt;br /&gt;
*Added ITEM.KEG.LAGER item to the BREWING.GOODS vendor.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural overworld (default) instance with a dynamicPlacementProbability of 0.35 (35% and a truncated post gen items set consisting of ore nodes and cavern / ruins entrances.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural lowland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural midland cavern instance with a dynamicPlacementProbability of 0.35 (35%) and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added allowPostGenTerrainModification support to the procedural highland cavern instance with a dynamicPlacementProbability of 0.35 (35% and the same post gen items as the peri gen item set.&lt;br /&gt;
*Added icon for ITEM_BUCKET_CURDS_AND_WHEY.&lt;br /&gt;
*Added icon for FOOD_CHEESE.&lt;br /&gt;
*Added icon for FOOD_CHEESE_RICH.&lt;br /&gt;
*Added icon for ITEM_CULTURE.&lt;br /&gt;
*Added icon for ITEM_CULTURE_RICH.&lt;br /&gt;
*Added &amp;quot;melts&amp;quot; boolean property for terrain layer definitions.&lt;br /&gt;
*Snow can now melt.&lt;br /&gt;
*Changed background color for mine instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for dimensional pocket instance from #322125 to #000000.&lt;br /&gt;
*Changed background color for tent instance from #322125 to #000000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Upcoming Release]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	<entry>
		<id>http://wiki.lugdunon.net/w/index.php/Feature_Roadmap</id>
		<title>Feature Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.lugdunon.net/w/index.php/Feature_Roadmap"/>
				<updated>2017-04-22T00:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lugdunon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{engine}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Feature&lt;br /&gt;
!Component&lt;br /&gt;
!Status&lt;br /&gt;
!Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Seasons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for seasons and seasonal changes in placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weather&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#ba8314&amp;quot;|Complete 0.8.4&lt;br /&gt;
|Add support for weather (fog / snow / rain / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Proximity spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement proximity spawning of NPCs (near PCs).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Time-based spawns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement spawning of NPCs based on time of day / month / year.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Command Structure Debugging&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add UI support for debugging the client / server command structure.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|iOS / Android Clients&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add native support for a mobile Lugdunon client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Extended Server Information Status Icon&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for a server status icon that displays extended server status info (admin-provided html  block, mod, versions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Expand reputation-awareness to include equippables, tools, weapons, placeables, vendors, vendor offerings, quest availability, npc proximity behaviors, and honorifics .&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Quests&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add the ability for the procedural generation of Quests.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Dyeing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to dye certain equippable (clothing) items. This will also entail a small GUI utility to define color palette presets for sprites, which will eventually be a part of the in game item editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map Enhancements&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add some mini-map enhancements (legend, resource node layers, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for the client viewport to be zoomed in or out.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guilds&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for player-run guilds (guild banks / halls / alliances / etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for resetting in various levels of severity of the standalone client's data files.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World File Reset UI&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to reset world /etc files via UI.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|World Version Tracking&lt;br /&gt;
|Core Engine / Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for tracking mod and server versions on a per world basis and allow for reset prompt of specific files on update.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dialogue Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add dialogue editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod / World Marketplace&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need to provide a central location for modders and builders to submit their work for others to consume.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase III (Bibracte &amp;amp; Senuessa)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Instance Template Editor&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Provide an editor for the creation and modification of instance templates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Prospecting / Archaelogy&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allows players to discover their own mine and ruin instances.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell Reagents&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement the spell reagent system so that alchemy is good for something.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WebGL Renderer&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Implement WebGL renderer for enhanced graphics experience.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod Loader&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for loading mods without collisions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Impersonator&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for GMs (and players) to impersonate a selected NPC or PC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add / edit achievements.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Equipment Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to add equipment / loot via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit behaviors via NPC editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendor Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add capability to edit vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Created Vendors&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for players to 'hire' a vendor to hock their wares.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editor Extension (Tombstones, and Others)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Make the sign editor extendable for use in creating other 'signable' items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Gamepad Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for gamepads using the new gamepad API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|I18N Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Add support for internationalization.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Infinite Terrain&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#880000&amp;quot;|Future&lt;br /&gt;
|Allow for infinite terrain and the loading / unloading of discrete map regions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Merge Tupelo &amp;amp; Clover Tileset/UI/Icon Assets&lt;br /&gt;
|Game Data / Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Merge the two tileset/ui/icon asset packs to create one super asset pack.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Item Editor (Initial Pass)&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.3&lt;br /&gt;
|Add initial support for editing placeable items.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Phasing of Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Tie visibility of placeable items to characters / accounts.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client caching support for server data sets.&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for client caching of server data sets (items, spells, commands, etc) to allow for faster startup times.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Breeding / Taming&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the breeding and taming of livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Renaming Domesticated Animals&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Allow for the renaming of pets and livestock.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Titles&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the players to earn titles and honorifics.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Factions &amp;amp; Reputation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add support for factions and the ability to earn reputation and for that reputation to affect purchase prices from vendors and hostility of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Towns&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of towns.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated Political Map&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of a political map (provinces, factions, etc).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedurally Generated NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.2&lt;br /&gt;
|Add the ability for the procedural generation of NPCs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client CEF / JCEF Update&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Need to update CEF and JCEF to the latest releases for features and stability.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Variable NPC Appearance&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.1&lt;br /&gt;
|Allow for multiple appearance definitions per NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Procedural Generation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
| Provide the tools necessary for allowing the procedural generation of landscapes, placeable items, NPCs, quests, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dungeons&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement dungeons filled with resources, monsters, bosses, and loot.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Biomes&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement biomes to make world creation a little easier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Power Expansion&lt;br /&gt;
|Core Engine / Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Implement loot siphons and the electrifyer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tents&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.8.0&lt;br /&gt;
|Add tents as a cheaper alternative to housing.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Offline Mode&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.2&lt;br /&gt;
|Allow for offline play.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Public Server Listing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Implement a public server listing service and the ability for servers to subscribe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arc Matter Expansion&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.1&lt;br /&gt;
|Add support for matter splitters, condensers, and filters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Arcane Power / Machines&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Implement arcane (magic based) machines and power sources to run the machines.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Radial Menus&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.7.0&lt;br /&gt;
|Add support for radial menus.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Screenshots&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|Allow players to take screenshots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Particle System&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Quest Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.3&lt;br /&gt;
|Add questing system editor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Standalone Client&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.2&lt;br /&gt;
|Build a standalone client using Awesomium, CEF, or some similar lib.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase II (Bibracte)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Preparation&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Bug fixes, performance improvements, and small additions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|New Art&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Add in all of the new tileset art from Meagan.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Beta Client / Purchasing&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.6.0&lt;br /&gt;
|Build the beta client and implement purchasing / account keys.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Z-Order Rendering Revisit&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.16&lt;br /&gt;
|Refactor placeable and character z-order rendering.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|HoTs &amp;amp; DoTs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for heal and damage over time modifiers.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Area of Effect&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.15&lt;br /&gt;
|Add support for AoEs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Equipment Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for equipment.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tool Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for tools.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Weapon Durability&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Implement durability for weapons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Repair NPC&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.14&lt;br /&gt;
|Add support for repairing damaged items via a repair NPC.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Triggered Actions&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add support for NPC triggered actions via behaviors and dialogue.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Currency&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Implement a currency system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Vendors&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.11&lt;br /&gt;
|Add NPC vendors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Inventory Interaction for Mobile&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a method for users on tables to interact with inventory screens.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|UI Settings&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement a UI settings pane and refactor / pull in display flags code.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.10&lt;br /&gt;
|Implement in game postal system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Stamina&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement the stamina system (make actions require stamina).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Passive Regen&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.9&lt;br /&gt;
|Implement a passive regen system for health and stamina.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Achievements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add achievements system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Server REST API&lt;br /&gt;
|Core Engine / Server&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.8&lt;br /&gt;
|Add expandable REST API system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing / Gate Protection&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.7&lt;br /&gt;
|Allow players to set access restrictions (keying) on gates and houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Drinking&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the ability to drink. Drinking should bestow various effects.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Brewing Crafting Profession&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.6&lt;br /&gt;
|Add the crafting profession to allow players to brew beverages.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Parameter Filtering&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add the ability to add parameter filters to /console commands.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mini-map&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dates&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add dates in addition to time, to allow for implementation of things like moon phases, and seasons.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Live Scrolling&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for live scrolling.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Full Screen Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for a full screen mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hi Res Support&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for higher resolutions (up to 1920×1080).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Resize Without Client Reload&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.4&lt;br /&gt;
|Add support for resizing the client window without requiring a client restart.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buffs / Debuffs&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a buff / debuff system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Tooltips&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Implement a tooltip system for displaying information on spells, buffs, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Death&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.3&lt;br /&gt;
|Properly implement a ‘death / dead’ state for NPCs and players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spell System&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.2&lt;br /&gt;
|Design and implement a spell casting system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Homing Conch&lt;br /&gt;
|Game Data / Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for Homing Conchs as a method for quickly traveling to your home point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Casting Times + Interrupts&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.1&lt;br /&gt;
|Add support for casting times on actions, and the ability to interrupt a cast in progress.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add a PVP-Centered Map&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add a map for PVP.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Targeting&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Add ability to target NPCS.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Combat System Overhaul&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.5.0&lt;br /&gt;
|Combat sucks. Rewrite it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parties (Grouping)&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add the ability for players to group into parties.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Unit Frames&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add support for unit frames.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Skeletons&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.10&lt;br /&gt;
|Add human skeletons to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part II&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Add sheep, cows, and dogs to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Keybinding / Key assignment API&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow players to bind keys, and provide an easy interface for modders to specify key actions.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|WASD Movement&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.9&lt;br /&gt;
|Allow WASD and arrow keys to move player character.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Animals Part I&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add pigs, chickens, and cats to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Add Female Humans&lt;br /&gt;
|Core Assets&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add female humans to the default art assets mod.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Fence Gates&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add fence gates that can be opened and closed by players.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Implement Input Queue&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Add a queueing system for input so input events aren’t dropped at lower framerates.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|localStorage -&amp;gt; indexedDB / Web SQL for Caching&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Need to soar past that 5mb hard limit. :/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sound Configuration&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ability configure sound emanators in game.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Volume Settings Panel&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement settings panel for controlling volume levels.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Housing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Allow players to craft and place houses.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ranged Combat&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.8&lt;br /&gt;
|Implement ranged combat.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Guest User Login&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.7&lt;br /&gt;
|Implement temporary guest login.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Default Campaign Phase I (Farmhouse)&lt;br /&gt;
|Game Data&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Need a showcase campaign.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ambient Sounds&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.6&lt;br /&gt;
|Implement ability to place ambient sounds in the game world.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Loot Table&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|NPCs need to drop loot on death.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Dialogue&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.5&lt;br /&gt;
|Implement NPC dialogue system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Console Overhaul&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Re-implement console to be less clunky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Settings UI&lt;br /&gt;
|Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.3&lt;br /&gt;
|Add a UI to allow players to adjust client settings.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Complete Animations&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Add animations for tool use, attacking, dying, and casting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Sprite Overhaul&lt;br /&gt;
|Server / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.2&lt;br /&gt;
|Overhaul sprite code to allow for compositing to take place on server side, and to allow for the new character art.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Metrics&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add a player metrics tracking system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Questing&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.1&lt;br /&gt;
|Add questing system.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Underground / Interior Instances&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.4.0&lt;br /&gt;
|Add separate instances for underground and building interiors.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Day / Night Cycle&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implemented as part of the environment subsystem.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Subsystems API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement engine subsystems API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Mod API&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Implement basic mod API.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Elevation Editor Refactoring&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.4&lt;br /&gt;
|Make elevation editor easier to use.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ace Integration&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Integrate the [http://ace.ajax.org/ Ace Code Editor] with the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macro Editor&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add editor for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Client Macros&lt;br /&gt;
|Client&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support for client-side macros.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Assign Command OPCODEs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Dynamically assign OPCODEs for commands on startup.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Audio Support&lt;br /&gt;
|Core / Client Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete 0.3.3&lt;br /&gt;
|Add support audio in asset management as well as playback on the client.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Campfires&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can melt snow. Need replenishing with fuel (wood). Can be extinguished with a water bucket.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Buckets&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Can be filled with water.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Farming (Hoes)&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|Players can alter terrain by tilling earth. Planting and harvesting crops.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Gen Utility&lt;br /&gt;
|Modding&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Recipe Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements UI&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Advancements&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Character Stats&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Initial Combat Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner Configuration&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Spawner&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Sign Editing&lt;br /&gt;
|Game Editor, Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Containers&lt;br /&gt;
|Game&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placing and Deleting Items&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPC Behavior&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|NPCs&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Crafting&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Placeable Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Items&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Player Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Characters&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Elevation Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Layer Editor&lt;br /&gt;
|Game Editor&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Chunking and Loading&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Format Implementation&lt;br /&gt;
|Core Engine&lt;br /&gt;
|style=&amp;quot;color:#008800&amp;quot;|Complete&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases|Feature Roadmap]]&lt;/div&gt;</summary>
		<author><name>Lugdunon</name></author>	</entry>

	</feed>