<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Isles of Yore Documentation]]></title><description><![CDATA[Isles of Yore Documentation]]></description><link>https://docs.islesofyore.com/</link><image><url>https://docs.islesofyore.com/favicon.png</url><title>Isles of Yore Documentation</title><link>https://docs.islesofyore.com/</link></image><generator>Ghost 4.12</generator><lastBuildDate>Wed, 29 Apr 2026 03:48:13 GMT</lastBuildDate><atom:link href="https://docs.islesofyore.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to switch to DirectX12]]></title><description><![CDATA[How to change your DirectX version back to 12.]]></description><link>https://docs.islesofyore.com/issues-switch-directx/</link><guid isPermaLink="false">62dfb07858c4104a3605262e</guid><category><![CDATA[Issues]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Tue, 26 Jul 2022 09:19:16 GMT</pubDate><content:encoded><![CDATA[<p>The game has recently switch backed to DirectX11 by default, after discovering performance issues that were caused by DX12. If the reversal switch to DX11 negatively impacts you, you can switch to Dx12 through the graphics options and restarting your game.</p><p><strong>Warning: The game intends to support DX12 SM6, which currently has issues on AMD GPUs on UE5. As a result, the toggle is currently unavailable on AMD GPUs and generally older GPUs.</strong></p>]]></content:encoded></item><item><title><![CDATA[REST API - Game webserver]]></title><description><![CDATA[<p>Isles of Yore comes with a built in web-server that allows REST communication with the game world.</p><p>To start the server, a rest port <em>must</em> be provided, otherwise the server will not start. In your launch arguments, for example add: <code>-restport=8085</code>. You may substitute <code>8085</code> for a custom port.</p>]]></description><link>https://docs.islesofyore.com/serverhosting-webserver/</link><guid isPermaLink="false">61b76ee6fc8c2b585f15361b</guid><category><![CDATA[Server Hosting]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Wed, 09 Feb 2022 10:45:00 GMT</pubDate><content:encoded><![CDATA[<p>Isles of Yore comes with a built in web-server that allows REST communication with the game world.</p><p>To start the server, a rest port <em>must</em> be provided, otherwise the server will not start. In your launch arguments, for example add: <code>-restport=8085</code>. You may substitute <code>8085</code> for a custom port.</p><p>Requests need to have a header &quot;username&quot;, and a header &quot;password&quot;, with the respective username and password for the web server. See server configuration for how to fill this in.</p><p><strong>Note: </strong>when &quot;UserID&quot; is mentioned here, this refers to the user&apos;s steamid.</p><hr><h2 id="endpoints">Endpoints:</h2><h2></h2><h3 id="post-announce">POST @ /Announce</h3><p>Announces a message in-game.</p><p><strong>Request example:</strong></p><pre><code class="language-json">{
	&quot;message&quot; : &quot;Hello there!&quot;
}</code></pre><p></p><h3 id="post-commands">POST @ /Commands</h3><p>Sends a raw command, like can be done with the in-game console.</p><p><strong>Request example:</strong></p><pre><code class="language-json">{
	&quot;Command&quot; : &quot;announce&quot;,
	&quot;Arguments&quot; : [&quot;test&quot;]
}</code></pre><h3 id="get-session">GET @ /Session</h3><p>Gets session details.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
  &quot;SessionStartUnixUTCTimestamp&quot;: &quot;1639405145708&quot;
}</code></pre><h3 id="get-ping">GET @ /Ping</h3><p>Returns status 200 with message &quot;Pong!&quot; if server is up.</p><hr><h2 id="players">Players</h2><h3 id="get-players">GET @ /Players</h3><p>Gets a list of players. </p><p><strong>Response example:</strong></p><pre><code class="language-json">{
  &quot;Players&quot;: [
    {
      &quot;UserName&quot;: &quot;SomeUsername&quot;,
      &quot;UserID&quot;: &quot;SomeID&quot;,
      &quot;Species&quot;: &quot;Coelophysis&quot;,
      &quot;Needs&quot;: {
        &quot;Eat&quot;: 100,
        &quot;Drink&quot;: 100,
        &quot;Oxygen&quot;: 100,
        &quot;Rest&quot;: 100
      },
      &quot;Growth&quot;: 22.5,
      &quot;GrowthStage&quot;: &quot;Adult&quot;,
      &quot;Health&quot;: 100,
      &quot;IsAlive&quot;: true,
      &quot;Location&quot;: {
        &quot;X&quot;: -7746.56640625,
        &quot;Y&quot;: -2029.3963623046875,
        &quot;Z&quot;: 66.06634521484375
      },
      &quot;LoginUnixUTCTimestamp&quot;: &quot;1639411750941&quot;
    }
  ]
}</code></pre><p></p><p>Optionally, add a query string to get a specific player:</p><p><strong>GET@ /Players/?userid=someid</strong></p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;Player&quot;: {
		&quot;NetId&quot;: &quot;SomeID&quot;,
		&quot;LastKnownUsername&quot;: &quot;SomeUsername&quot;,
		&quot;AllKnownUsernames&quot;: [ &quot;SomeUsername&quot; ],
		&quot;LogonTimestamps&quot;: [
			&quot;1640006726518&quot;,
			&quot;1640006726540&quot;
		],
		&quot;UseCustomNameColour&quot;: false,
		&quot;CustomNameColour&quot;: {
			&quot;R&quot;: 0,
			&quot;G&quot;: 0,
			&quot;B&quot;: 0,
			&quot;A&quot;: 0
		}
	},
	&quot;Pawn&quot;: {
		&quot;Species&quot;: &quot;Coelophysis&quot;,
		&quot;PersistedSkin&quot;: {
			&quot;BasePresetId&quot;: &quot;&quot;,
			&quot;BaseColour&quot;: {
				&quot;R&quot;: 0,
				&quot;G&quot;: 0,
				&quot;B&quot;: 0,
				&quot;A&quot;: 0
			},
			&quot;Alphas&quot;: []
		},
		&quot;OwnerNetId&quot;: &quot;SomeID&quot;,
		&quot;Location&quot;: {
			&quot;X&quot;: -6634.7255859375,
			&quot;Y&quot;: -1459.6689453125,
			&quot;Z&quot;: 66.06634521484375
		},
		&quot;Growth&quot;: 901.5,
		&quot;Health&quot;: 1700.3333740234375,
		&quot;Stamina&quot;: 349.85000610351563,
		&quot;Thirst&quot;: 280,
		&quot;Hunger&quot;: 300,
		&quot;Oxygen&quot;: 30
	},
	&quot;HasPersistedPawn&quot;: true
}</code></pre><p></p><h3 id="get-playerrecords">GET @ /Player/Records</h3><p>Gets a list of historical players. </p><p><strong>Response example:</strong></p><pre><code class="language-json">{
    &quot;Players&quot;: 
    [
        {
            &quot;Player&quot;: {
                &quot;NetId&quot;: &quot;SomeID&quot;,
                &quot;LastKnownUsername&quot;: &quot;SomeUsername&quot;,
                &quot;AllKnownUsernames&quot;: [ &quot;SomeUsername&quot; ],
                &quot;LogonTimestamps&quot;: [
                    &quot;1640006726518&quot;,
                    &quot;1640006726540&quot;
                ],
                &quot;UseCustomNameColour&quot;: false,
                &quot;CustomNameColour&quot;: {
                    &quot;R&quot;: 0,
                    &quot;G&quot;: 0,
                    &quot;B&quot;: 0,
                    &quot;A&quot;: 0
                }
            },
            &quot;Pawn&quot;: {
                &quot;Species&quot;: &quot;Coelophysis&quot;,
                &quot;PersistedSkin&quot;: {
                    &quot;BasePresetId&quot;: &quot;&quot;,
                    &quot;BaseColour&quot;: {
                        &quot;R&quot;: 0,
                        &quot;G&quot;: 0,
                        &quot;B&quot;: 0,
                        &quot;A&quot;: 0
                    },
                    &quot;Alphas&quot;: []
                },
                &quot;OwnerNetId&quot;: &quot;SomeID&quot;,
                &quot;Location&quot;: {
                    &quot;X&quot;: -6634.7255859375,
                    &quot;Y&quot;: -1459.6689453125,
                    &quot;Z&quot;: 66.06634521484375
                },
                &quot;Growth&quot;: 919.5,
                &quot;Health&quot;: 1704.3333740234375,
                &quot;Stamina&quot;: 348.04998779296875,
                &quot;Thirst&quot;: 267,
                &quot;Hunger&quot;: 289.60015869140625,
                &quot;Oxygen&quot;: 30
            },
            &quot;HasPersistedPawn&quot;: true
        },
    [...]
    ]
}</code></pre><p></p><p></p><hr><h2 id="simulation">Simulation</h2><h3 id="get-world">GET @ /World</h3><p>Gets world simulation details.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;Time&quot;: 7.1193399429321289,
	&quot;Weather&quot;: &quot;Clear Skies&quot;,
	&quot;Season&quot;: &quot;Spring&quot;,
	&quot;Day&quot;: 5,
	&quot;Month&quot;: 12,
	&quot;Year&quot;: 2042,
	&quot;Lat&quot;: -47,
	&quot;Long&quot;: -176.74156188964844
}</code></pre><p></p><h3 id="get-worldconfig">GET @ /World/Config</h3><p>Gets current world simulation configuration details.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;Spawn&quot;: {
		&quot;SpawnWeights&quot;: {
			&quot;Arganodus&quot;: {
				&quot;Weight&quot;: 1,
				&quot;Min&quot;: 0
			},
			&quot;Chinlea&quot;: {
				&quot;Weight&quot;: 1,
				&quot;Min&quot;: 0
			},
			&quot;Dipterus&quot;: {
				&quot;Weight&quot;: 0.5,
				&quot;Min&quot;: 0
			},
			&quot;Diplocaulus&quot;: {
				&quot;Weight&quot;: 0.69999998807907104,
				&quot;Min&quot;: 0
			},
			&quot;Ichthyostega&quot;: {
				&quot;Weight&quot;: 2,
				&quot;Min&quot;: 0
			},
			&quot;Triceratops&quot;: {
				&quot;Weight&quot;: 1,
				&quot;Min&quot;: 0
			},
			&quot;Stegosaurus&quot;: {
				&quot;Weight&quot;: 0.5,
				&quot;Min&quot;: 0
			},
			&quot;Tyrannosaurus&quot;: {
				&quot;Weight&quot;: 1.2999999523162842,
				&quot;Min&quot;: 0
			},
			&quot;Deinonychus&quot;: {
				&quot;Weight&quot;: 2.5,
				&quot;Min&quot;: 0
			},
			&quot;Coelophysis&quot;: {
				&quot;Weight&quot;: 4,
				&quot;Min&quot;: 0
			},
			&quot;Suchomimus&quot;: {
				&quot;Weight&quot;: 0.69999998807907104,
				&quot;Min&quot;: 0
			},
			&quot;Spinosaurus&quot;: {
				&quot;Weight&quot;: 1,
				&quot;Min&quot;: 0
			},
			&quot;Kongonaphon&quot;: {
				&quot;Weight&quot;: 2.5,
				&quot;Min&quot;: 0
			}
		},
		&quot;TotalMaxSpawnedAI&quot;: 103,
		&quot;RegulationFrequency&quot;: 5
	},
	&quot;World&quot;: {
		&quot;Geography&quot;: {
			&quot;Lat&quot;: -47,
			&quot;Long&quot;: -176.74156188964844
		},
		&quot;Weather&quot;: {
			&quot;AuroraAtNightChance&quot;: 0.15000000596046448,
			&quot;SpringWeatherProbabilities&quot;: {
				&quot;Clear Skies&quot;: 1,
				&quot;Partly Cloudy&quot;: 1.5,
				&quot;Cloudy&quot;: 0.60000002384185791,
				&quot;Overcast&quot;: 0.5,
				&quot;Foggy&quot;: 0.34999999403953552,
				&quot;Light Rain&quot;: 0.5,
				&quot;Rain&quot;: 0.5,
				&quot;Thunderstorm&quot;: 0.40000000596046448,
				&quot;Light Snow&quot;: 0.17499999701976776,
				&quot;Snow&quot;: 0.10000000149011612,
				&quot;Blizzard&quot;: 0
			},
			&quot;SummerWeatherProbabilities&quot;: {
				&quot;Clear Skies&quot;: 1,
				&quot;Partly Cloudy&quot;: 1.5,
				&quot;Cloudy&quot;: 0.60000002384185791,
				&quot;Overcast&quot;: 0.5,
				&quot;Foggy&quot;: 0.20000000298023224,
				&quot;Light Rain&quot;: 0.5,
				&quot;Rain&quot;: 0.5,
				&quot;Thunderstorm&quot;: 0.40000000596046448,
				&quot;Light Snow&quot;: 0,
				&quot;Snow&quot;: 0,
				&quot;Blizzard&quot;: 0
			},
			&quot;AutumnWeatherProbabilities&quot;: {
				&quot;Clear Skies&quot;: 1,
				&quot;Partly Cloudy&quot;: 1.5,
				&quot;Cloudy&quot;: 0.60000002384185791,
				&quot;Overcast&quot;: 1,
				&quot;Foggy&quot;: 0.5,
				&quot;Light Rain&quot;: 0.5,
				&quot;Rain&quot;: 0.5,
				&quot;Thunderstorm&quot;: 0.40000000596046448,
				&quot;Light Snow&quot;: 0.25,
				&quot;Snow&quot;: 0,
				&quot;Blizzard&quot;: 0
			},
			&quot;WinterWeatherProbabilities&quot;: {
				&quot;Clear Skies&quot;: 1,
				&quot;Partly Cloudy&quot;: 1.5,
				&quot;Cloudy&quot;: 0.60000002384185791,
				&quot;Overcast&quot;: 0.5,
				&quot;Foggy&quot;: 0.34999999403953552,
				&quot;Light Rain&quot;: 0.15000000596046448,
				&quot;Rain&quot;: 0.10000000149011612,
				&quot;Thunderstorm&quot;: 0.20000000298023224,
				&quot;Light Snow&quot;: 0.5,
				&quot;Snow&quot;: 0.5,
				&quot;Blizzard&quot;: 0.40000000596046448
			},
			&quot;TimeRangeHoldNewWeather&quot;: {
				&quot;X&quot;: 60,
				&quot;Y&quot;: 300
			}
		},
		&quot;Clock&quot;: {
			&quot;StartingHour&quot;: 7.1826539039611816,
			&quot;StartingDay&quot;: 5,
			&quot;StartingMonth&quot;: 12,
			&quot;StartingYear&quot;: 2042,
			&quot;TimeZone&quot;: 12,
			&quot;AllowDST&quot;: true,
			&quot;DSTStartDay&quot;: 26,
			&quot;DSTStartMonth&quot;: 9,
			&quot;DSTEndDay&quot;: 3,
			&quot;DSTEndMonth&quot;: 4,
			&quot;DSTChangeHour&quot;: 2,
			&quot;GameSpeedDay&quot;: 0.80000001192092896,
			&quot;GameSpeedNight&quot;: 1.1000000238418579
		}
	},
	&quot;PersistWorld&quot;: true
}</code></pre><h3 id="todo-post-worldconfig">@TODO: POST @ /World/Config</h3><p>Sets active world simulation details.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
  
}</code></pre><h3 id="get-ai">GET @ /AI</h3><p>Gets current AI details.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;AI&quot;: [
		{
			&quot;IsActive&quot;: true,
			&quot;Species&quot;: &quot;Tyrannosaurus&quot;,
			&quot;Needs&quot;: {
				&quot;Eat&quot;: 0,
				&quot;Drink&quot;: 100,
				&quot;Oxygen&quot;: 100,
				&quot;Rest&quot;: 60.000003814697266
			},
			&quot;Growth&quot;: 5,
			&quot;GrowthStage&quot;: &quot;Juvenile&quot;,
			&quot;Health&quot;: 100,
			&quot;IsAlive&quot;: true,
			&quot;Location&quot;: {
				&quot;X&quot;: -7048,
				&quot;Y&quot;: -2226,
				&quot;Z&quot;: 74.661392211914063
			}
		}
	]
}</code></pre><hr><h2 id="teams">Teams</h2><h3 id="get-teams">GET @ /Teams</h3><p>Gets current teams and their members</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;Teams&quot;: [
		{
			&quot;IsActiveTeam&quot;: true,
			&quot;UniqueId&quot;: &quot;1B7EE0E04A897FC2C109D6B1B583651F&quot;,
			&quot;TeamLeadUniqueNetId&quot;: &quot;SomeID_A&quot;,
			&quot;TeamMembers&quot;: [
				{
					&quot;UniqueNetIdStr&quot;: &quot;SomeID_A&quot;
				},
				{
					&quot;UniqueNetIdStr&quot;: &quot;SomeID_B&quot;
				}
			],
			&quot;AllowedMemberSpecies&quot;: [
				&quot;Coelophysis&quot;
			],
			&quot;MaxMembers&quot;: 20
		}
	]
}</code></pre><hr><h2 id="bans">Bans</h2><h3 id="get-bans">GET @ /Bans</h3><p>Gets current bans.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
  &quot;Bans&quot;: [
    {
      &quot;BanID&quot;: &quot;857E364E4B6C355BBB27749E31438977&quot;,
      &quot;UserID&quot;: &quot;SomeUserID&quot;,
      &quot;LastKnownUsername&quot;: &quot;SomeUsername&quot;,
      &quot;BannedByUserID&quot;: &quot;SomeBannerID&quot;,
      &quot;BannedByUserName&quot;: &quot;SomeBannerUsername&quot;,
      &quot;Reason&quot;: &quot;Some reason&quot;,
      &quot;TimestampUnixUTC&quot;: &quot;1639410049138&quot;,
      &quot;DurationInSeconds&quot;: 0 //currently not used
    }
  ]
}</code></pre><h3 id="put-bans">PUT @ /Bans</h3><p>Adds a ban.</p><p><strong>Request example:</strong></p><pre><code class="language-json">{
	&quot;UserID&quot; : &quot;SomeID&quot;,
	&quot;BannedByUserID&quot; : &quot;SomeOtherID&quot;,
	&quot;BanReason&quot; : &quot;SomeReason&quot;
}</code></pre><h3 id="delete-bans">DELETE @ /Bans</h3><p>Removes a ban.</p><p><strong>Request example:</strong></p><pre><code class="language-json">{
	&quot;UserID&quot; : &quot;SomeID&quot;
}</code></pre><hr><h2 id="admins">Admins</h2><h3 id="get-admins">GET @ /Admins</h3><p>Gets current admins.</p><p><strong>Response example:</strong></p><pre><code class="language-json">{
	&quot;Admins&quot;: [ &quot;SomeID&quot; ]
}</code></pre><h3 id="put-adminsuseridsomeid">PUT @ /Admins/?userid=someid</h3><p>Adds an admin, send the userid encoded through a url query component (<code>?userid=someid</code>).</p><h3 id="delete-adminsuseridsomeid">DELETE @ /Admins?userid=someid</h3><p>Removes an admin, send the userid encoded through a url query component (<code>?userid=someid</code>).</p><hr><h2 id="misc">Misc</h2><h3 id="post-namecolour">POST@ /NameColour</h3><p>Adds a custom name colour, used in the game chat.</p><p><strong>Request example:</strong></p><pre><code class="language-json">{
	&quot;UserID&quot; : &quot;SomeID&quot;,
	&quot;UseCustomColour&quot; : true,
	&quot;Colour&quot; : {
		&quot;R&quot;: 204,
		&quot;G&quot;: 0,
		&quot;B&quot;: 204,
		&quot;A&quot;: 1
	}
}</code></pre>]]></content:encoded></item><item><title><![CDATA[Locomotion]]></title><description><![CDATA[<p>Below is a brief list of some available actions for your character.</p><hr><h3 id="charged-jump">Charged jump</h3><p>Holding the <em>crouch </em>button for a moment, then pressing <em>jump</em>, will lunge the character forward in a charged jump. </p><h3 id="skip-jumpdodge">&quot;Skip&quot; jump/dodge</h3><p>Double-tapping the directional keys while holding alt does a small &quot;skip&</p>]]></description><link>https://docs.islesofyore.com/gameplay-locomotion/</link><guid isPermaLink="false">61530c86d7e90d282fe5bc9d</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Tue, 08 Feb 2022 10:40:44 GMT</pubDate><content:encoded><![CDATA[<p>Below is a brief list of some available actions for your character.</p><hr><h3 id="charged-jump">Charged jump</h3><p>Holding the <em>crouch </em>button for a moment, then pressing <em>jump</em>, will lunge the character forward in a charged jump. </p><h3 id="skip-jumpdodge">&quot;Skip&quot; jump/dodge</h3><p>Double-tapping the directional keys while holding alt does a small &quot;skip&quot; or &quot;hop&quot; jump.</p>]]></content:encoded></item><item><title><![CDATA[Server management]]></title><description><![CDATA[<p>This document describes day-to-day concerns you might face with your server, and how to handle them.</p><hr><h3 id="admin-menu">Admin menu</h3><p>There&apos;s a (rough) admin menu available with the <code>F2</code> key that miscellaneous tooling such as switching to an admin pawn that allows you to fly around, try the &quot;scanner</p>]]></description><link>https://docs.islesofyore.com/serverhosting-management/</link><guid isPermaLink="false">619526e1b91ad1044c7de98b</guid><category><![CDATA[Server Hosting]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Sat, 11 Dec 2021 16:35:47 GMT</pubDate><content:encoded><![CDATA[<p>This document describes day-to-day concerns you might face with your server, and how to handle them.</p><hr><h3 id="admin-menu">Admin menu</h3><p>There&apos;s a (rough) admin menu available with the <code>F2</code> key that miscellaneous tooling such as switching to an admin pawn that allows you to fly around, try the &quot;scanner option&quot;.</p><h3 id="yeet">Yeet</h3><p>Toggle <code>Y</code> to yeet yourself by increasing max movement speed (start sprinting) and ignoring fall damage.</p><h3 id="player-stuck">Player stuck</h3><p>Use the player overview (accessible through the status menu with the <em>tab </em>key) to teleport the player to you, or you to them. You can switch into an admin pawn through the F4 key that will allow you to fly. Try the &quot;scanner&quot; option.</p><h3 id="console">Console</h3><p>The game has a large amount of commands available for debugging and server management. Press <em>F1 </em>to open the console. There are too many commands available to list here, but here&apos;s a few crucial ones to find and understand them:</p><ol><li><em><strong>ls</strong> </em>- Lists all commands</li><li><strong><em>man [command] </em></strong>- Prints a description of the command you&apos;re targeting, so you can figure out how to use it. E.g.: &quot;<em>man sim.weather</em>&quot;.</li></ol><h3 id="banningkicking">Banning/Kicking</h3><p>Both the player overview (accessible through the status menu with the <em>tab </em>key), as well as the console have ways for you to ban/kick a user. Alternatively, you can also edit the server config (<em>Privileges.json</em>).</p>]]></content:encoded></item><item><title><![CDATA[Community server options]]></title><description><![CDATA[<p>On startup, the server will create various <em>.json </em>configuration files in <em><code>[YourInstallDirectory]/IslesOfYore/Saved/Yore</code> </em>(let the server run until the files appear!). This document walks through each of them, with examples and comments (as indicated by &quot;<em>//</em>&quot;). </p><p><strong>Note: </strong>Do not literally copy the config files here, they have</p>]]></description><link>https://docs.islesofyore.com/serverhosting-configuration/</link><guid isPermaLink="false">61295652d7ed010450ad4cf6</guid><category><![CDATA[Server Hosting]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Fri, 10 Dec 2021 17:34:35 GMT</pubDate><content:encoded><![CDATA[<p>On startup, the server will create various <em>.json </em>configuration files in <em><code>[YourInstallDirectory]/IslesOfYore/Saved/Yore</code> </em>(let the server run until the files appear!). This document walks through each of them, with examples and comments (as indicated by &quot;<em>//</em>&quot;). </p><p><strong>Note: </strong>Do not literally copy the config files here, they have been modified and reduced where appropriate for explanation. Rather, manually modify the files that your server generates for you.</p><p></p><p>Here are some tips on JSON syntax if this is new to you:<br><a href="https://www.w3schools.com/js/js_json_syntax.asp">https://www.w3schools.com/js/js_json_syntax.asp</a></p><p>A validator for the file/changes you&apos;ve made can be found here:<br><a href="https://jsonlint.com/">https://jsonlint.com/</a></p><p></p><blockquote><strong>Note: Keep in mind that <a href="https://docs.islesofyore.com/server-hosting-selling/">selling in-game services that lead to gameplay advantages is prohibited</a></strong></blockquote><hr><h3 id="tickrate">Tickrate</h3><p>Default tickrate is 20, if you wish to change it, go to <em><code>[YourInstallDirectory]/IslesOfYore/Saved/Config/&lt;YourOS&gt;Server/Engine.ini</code></em>, and add:</p><pre><code class="language-ini">[/Script/SteamSockets.SteamSocketsNetDriver]
NetServerMaxTickRate=30</code></pre><p>Keep in mind that the game is being developed with high AI in mind, which costs performance, and you&apos;ll need to hone in on a config that balances player slots with AI slots and your intended tick rate. 30 can be reachable with some tweaks to the config.</p><hr><h3 id="sessionjson">Session.json</h3><p>This config deals with server session options.</p><pre><code class="language-javavascript">{
    &quot;PublicConnections&quot;: 50, //Max amount of players that can connect.
    
    &quot;MapName&quot;: &quot;SV_Yore_V1&quot;, //Do not change, only 1 map available currently.
    
    &quot;Password: &quot;somethingmaybe&quot;, //Password, if any
    
    &quot;AdminConnectionPassword&quot;: &quot;something&quot; //Used to force log in even when server is full
    
    &quot;ServerName&quot;: &quot;IslesOfYore&quot;, //Your server name.
    
    //Description shown in server browser (max 45 chars).
    &quot;ServerDescription&quot;: &quot;PvP focussed server with medium AI sizes.&quot;, 
    
    //Description shown in rules tab in-game.
    &quot;ServerRules&quot;: &quot;
    Treat one another with respect, keep the chat clean.
    Toxic behaviour can result in either a kick or a ban.

    Something important. Something important. Something important.

    Something important. Something important. Something important.

    You can contact us through the discord. Something important.
    &quot;, 
    &quot;DiscordURL&quot;: &quot;https://discord.gg/xxxx&quot;, //Link to your Discord, if any.
    &quot;UseLAN&quot;: false, // Keep false, see note below
    &quot;ExitProcessPeriodically&quot;: false //See note below,
    &quot;ExitProcessAfterSeconds&quot;: 21600.0 (minimum 300),
    &quot;REST_Username&quot;: &quot;SomeUsername&quot;, // Username for REST web server
    &quot;REST_Password&quot;: &quot;SomePassword&quot;, // Password for REST web server
    &quot;ExitProcessBelowMinSFPS&quot;: false, //Opt-in to auto exit server process if performance low
    &quot;ExitProcessMinSFPS&quot;: 5,
    &quot;ExitProcessMinSFPSDuration&quot;: 20
}
</code></pre><h3 id="discord">Discord</h3><p><strong>Note that the discord URL must exactly start with &quot;<a href="https://discord.gg/">https://discord.gg/</a>&quot;, or &quot;https://discord.com&quot;. </strong>It will not work otherwise, this is to prevent abuse.</p><h3 id="server-description">Server description</h3><p>Note also that server description has a max character limit of 45! This is an unfortunate limitation that cannot be resolved at the moment.</p><p><strong>Tip</strong>: The indentation looks a little funky, but if you keep the server rules indentation exactly as in the example above, the text will be nicely displayed in the game.</p><h3 id="lan">LAN</h3><p>The game is hostable over LAN, but you do need a connection to Steam for it to work. You can play by setting up a dedicated server on your local machine or LAN network, and connecting through the LAN tab. </p><p><strong>Note: Do not change <code>UseLan</code> to <code>true</code>. </strong></p><p>This currently produces an issue where you cannot find the server. If you want to protect it from other people joining, add a password on your server.</p><h3 id="exit-process-periodically">Exit Process Periodically</h3><p>If you have a service that brings the process back up when it exits, you can use this feature to exit and thus restart the instance periodically. </p><p>Use <code>ExitProcessAfterSeconds</code> for the duration after which the process will exit. Announcements will automatically be made in-game.</p><hr><h3 id="privilegesjson">Privileges.json</h3><p>This config holds information over who&apos;s banned and how to handle admins.</p><p>Important points for this config are:</p><ol><li>If <em>AllowAdminPromotionWithSecretWord </em>is set to &quot;true&quot;, then the &quot;SecretWord&quot; can be entered by typing &quot;<em>sudo mytopsecretword</em>&quot; into the game console while inside the server. This promotes the person entering the command to admin, and can be a used as a way for your staff to promote themselves without the main admin being in the server or manually editing the <em>AdminNetIds</em> field and restarting the server. This feature is <strong>off </strong>by default.</li><li>To add the admins, ensure the steam id is wrapped in quotes: &quot;steamid&quot;. If you need more admins, add a comma between them like this:<br><em>&quot;Admins&quot; : [ &quot;SteamID1&quot;, &quot;SteamID2&quot; ]</em></li></ol><pre><code class="language-javascript">{
    &quot;Admins&quot;: [
        &quot;yoursteamid&quot;
    ],
    &quot;BannedUsers&quot;: [ 
        {
            &quot;UserID&quot;: &quot;somesteamid&quot;,
            &quot;LastKnownUsername&quot; : &quot;someuser&quot;,
            &quot;Reason&quot; : &quot;somereason&quot;,
            &quot;TimestampUnixUTC&quot; : &quot;sometimestamp&quot;,
            &quot;DurationInSeconds&quot; : 0 // Not used, reserved for future use.
      	},
        [...]
    ],
    &quot;SecretWord&quot;: &quot;mytopsecretword&quot;,
    &quot;AllowAdminPromotionWithSecretWord&quot;: false
}
</code></pre><p>Note that there are in-game tools to ban people too. Both on the player overview screen while in-game, as well as through the console. See the <a href="https://docs.islesofyore.com/serverhosting-management/">server management</a> page for more info.</p><hr><h3 id="worldjson">World.json</h3><p>This config deals with world simulation options. </p><p>Important points for this config are:</p><ol><li>If you intend to have a large amount of players, you can turn down the amount of max AI that is allowed to spawn.</li><li>The total of all &quot;spawn weights&quot; is counted up, and the percentage of each individual weight as it relates to the total, is then used to find the amount of animals of that species to spawn based on <em>TotalMaxSpawnedAI. </em>A calculator for this is available <a href="https://docs.google.com/spreadsheets/d/1L5QTjvVxxQ2zni-N0wcIn_cmq8RO6ehTHDlFrBxMG5o/edit?usp=sharing">here</a>. Copy the sheet and fill in the animals you want to spawn, with their weights.</li><li>If changing your &quot;geography&quot; settings, make sure that you update the appropriate day light savings (<u><em>DST</em></u>) settings for that region in &quot;clock&quot;. Otherwise you&apos;ll lose the accurate sunrise/sunset times.</li></ol><pre><code class="language-javascript">{
    &quot;Spawn&quot;:
    {
        &quot;SpawnWeights&quot;:
        {
            &quot;Arganodus&quot;:
            {
                &quot;Weight&quot;: 1,
                &quot;Min&quot;: 0
            },
            [...]
        },
        &quot;TotalMaxSpawnedAI&quot;: 103, //Total max AI to spawn
        &quot;RegulationFrequency&quot;: 5 //Tries to spawn every 5 seconds,
        &quot;ShouldScaleWithPlayerCount&quot;: true, //Scale AI count based on players on server
        &quot;ScaleWithPlayerCountMinPlayers&quot;: 20, //Above this player count, remove some AI
        &quot;PlayerSlotWeight&quot;: 0.5 //How much AI to remove for each player above min players
    },
    &quot;World&quot;:
    {
        &quot;Geography&quot;:
        {
            &quot;Lat&quot;: -47,
            &quot;Long&quot;: -176.74
        },
        &quot;Weather&quot;:
        {
            &quot;AuroraAtNightChance&quot;: 0.15,
            &quot;SpringWeatherProbabilities&quot;:
            {
                &quot;Clear Skies&quot;: 0.6,
                &quot;Partly Cloudy&quot;: 1.3,
                &quot;Cloudy&quot;: 1.2,
                &quot;Overcast&quot;: 0.8,
                &quot;Foggy&quot;: 0.35,
                &quot;Light Rain&quot;: 0.5,
                &quot;Rain&quot;: 0.5,
                &quot;Thunderstorm&quot;: 0.4,
                &quot;Light Snow&quot;: 0.17,
                &quot;Snow&quot;: 0.1,
                &quot;Blizzard&quot;: 0
            },
            &quot;SummerWeatherProbabilities&quot;:
            {
                [...]
            },
            &quot;AutumnWeatherProbabilities&quot;:
            {
                [...]
            },
            &quot;WinterWeatherProbabilities&quot;:
            {
                [...]
            },
            &quot;TimeRangeHoldNewWeather&quot;:
            {
                &quot;X&quot;: 600, //Hold weather type for min 600 seconds
                &quot;Y&quot;: 1200 //Hold weather type for max 1200 seconds
            }
        },
        &quot;Clock&quot;:
        {
            &quot;StartingHour&quot;: 5,
            &quot;StartingDay&quot;: 5,
            &quot;StartingMonth&quot;: 10,
            &quot;StartingYear&quot;: 2042,
            &quot;TimeZone&quot;: 12,
            &quot;AllowDST&quot;: true,
            &quot;DSTStartDay&quot;: 26,
            &quot;DSTStartMonth&quot;: 9,
            &quot;DSTEndDay&quot;: 3,
            &quot;DSTEndMonth&quot;: 4,
            &quot;DSTChangeHour&quot;: 2,
            &quot;GameSpeedDay&quot;: 0.8, //Multiplier for game speed during day
            &quot;GameSpeedNight&quot;: 1.1 //Multiplier for game speed at night
        }
    },
    &quot;PersistWorld&quot; : true //Persist world state (date/time)?
}
</code></pre><hr><h3 id="gameplayjson">Gameplay.json</h3><p>This config deals with gameplay and balancing options. <em>SpeciesConfigs</em> holds a list of potential overrides that you can apply per species. </p><p>For the currently active balance, see <em><code>[YourInstallDirectory]/IslesOfYore/Saved/Yore/Temp/ActiveBalance.json</code></em>. </p><p>You can use the <code>ActiveBalance.json</code> file as a starting point for your changes in <code>Gameplay.json</code>. Any species written into <em>SpeciesConfigs </em>within <code>Gameplay.json</code> will have that specific stat/attribute of that species applied within the game.</p><p>Here&apos;s an abbreviated example of <code>ActiveBalance.json</code>:</p><pre><code class="language-javascript">{
  &quot;Balance&quot;: {
    &quot;SpeciesConfigs&quot;: {
      &quot;Coelophysis&quot;: {
        &quot;Attributes&quot;: {
          &quot;Stats&quot;: [
            {
              &quot;Tag&quot;: {
                &quot;TagName&quot;: &quot;Yore.Attributes.Scale&quot;
              },
              &quot;Stat&quot;: {
                &quot;Curve&quot;: &quot;None&quot;,
                &quot;bUseFlatValue&quot;: false,
                &quot;PeakValue&quot;: 1.2
              }
            },
            {
              &quot;Tag&quot;: {
                &quot;TagName&quot;: &quot;Yore.Attributes.AttackForce&quot;
              },
              &quot;Stat&quot;: {
                &quot;Curve&quot;: &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_Linear_SmallDropElder.CRV_Growth_Linear_SmallDropElder&apos;&quot;,
                &quot;bUseFlatValue&quot;: false,
                &quot;PeakValue&quot;: 135
              }
            },
            [...]
          ]
        }
      },
	  [...]
    }
  },
  &quot;AvailableAttributeCurveTypes&quot;: [
    &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_CurvedLinear_FullLinear.CRV_Growth_CurvedLinear_FullLinear&apos;&quot;,
    &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_Linear_SmallDropElder.CRV_Growth_Linear_SmallDropElder&apos;&quot;,
    &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_RampUpPuberty_SlowGrowthAfter.CRV_Growth_RampUpPuberty_SlowGrowthAfter&apos;&quot;,
    &quot;None&quot;
  ]
}</code></pre><p>And here&apos;s an example of a <code>Gameplay.json</code> config override.</p><pre><code class="language-javascript">{
  &quot;Balance&quot;: {
    &quot;SpeciesConfigs&quot;: {
      &quot;Coelophysis&quot;: {
        &quot;Attributes&quot;: {
          &quot;Stats&quot;: [
              
            // Stat override #1, attack force
            {
              &quot;Tag&quot;: {
                &quot;TagName&quot;: &quot;Yore.Attributes.AttackForce&quot;
              },
              &quot;Stat&quot;: {
                &quot;Curve&quot;: &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_Linear_SmallDropElder.CRV_Growth_Linear_SmallDropElder&apos;&quot;,
                &quot;bUseFlatValue&quot;: false,
                &quot;PeakValue&quot;: 20 // change this to make the animal stronger
              }
            },
              
            // Stat override #2, scale
            {
              &quot;Tag&quot;: {
                &quot;TagName&quot;: &quot;Yore.Attributes.Scale&quot;
              },
              &quot;Stat&quot;: {
                // make sure you set a curve
                &quot;Curve&quot;: &quot;CurveFloat&apos;/Game/IslesOfYore/Characters/Animals/Core/Metabolism/Growth/CurvePresets/CRV_Growth_CurvedLinear_FullLinear.CRV_Growth_CurvedLinear_FullLinear&apos;&quot;,
                &quot;bUseFlatValue&quot;: false,
                &quot;PeakValue&quot;: 1.3 // change this to make the animal larger
              }
            }
          ]
        }
      }
    }
  },
  &quot;NeedsDepletionMultiplier&quot;: 1, //Tweak how fast needs (food/water) deplete
  &quot;AIAttackMultiplier&quot;: 0.8, //Tweak the default species attack stats for AI
  &quot;AIDefenseMultiplier&quot;: 0.8, //Tweak the default species defense stats for AI
  &quot;AISpeedMultiplier&quot;: 1 //Tweak the default species speed stats for AI
}</code></pre><p></p><p>Some things to consider here:</p><ol><li>Your overrides will consist of a peak value and either a curve, or defining it as a flat value with <code>bUseFlatValue</code>. Flat values don&apos;t change during growth, curves allow you to define how you reach that peak value over the lifetime of the animal as it grows.</li><li>All available curves are found in <code>AvailableAttributeCurveTypes</code>.</li><li>As seen in the example, some stats have a curve of <code>None</code>, and also do not have a flat value enabled. This combination indicates a custom curve that is currently set in the game, and is not exposed. If you want to override a stat, make sure you use one of the available curves or opt for a flat value. Keeping <code>None</code> and just adjusting the peak value will <strong><em>not</em> </strong>work.</li></ol>]]></content:encoded></item><item><title><![CDATA[Selling services on community servers is prohibited]]></title><description><![CDATA[<p>Selling access to any in-game content that impacts gameplay is strictly forbidden. This includes but is not limited to exclusive skins, unlocking characters, or providing paid services that unlock game progress. This stipulation applies to real life currency, any virtual currency, any form of alternate payment, donations, or any method</p>]]></description><link>https://docs.islesofyore.com/server-hosting-selling/</link><guid isPermaLink="false">61a8e97a90e93741996a80a0</guid><category><![CDATA[Server Hosting]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Mon, 06 Dec 2021 17:23:39 GMT</pubDate><content:encoded><![CDATA[<p>Selling access to any in-game content that impacts gameplay is strictly forbidden. This includes but is not limited to exclusive skins, unlocking characters, or providing paid services that unlock game progress. This stipulation applies to real life currency, any virtual currency, any form of alternate payment, donations, or any method tied to monetary compensation.</p><p>If your community server is found in breach of this rule, action will be taken to block access to the server.</p>]]></content:encoded></item><item><title><![CDATA[Postponed features]]></title><description><![CDATA[<p>In preparation for the first early access release, the Steam store page has been updated to better reflect the state of the game. Nonetheless, for the sake of transparency, below is a list of previous marketing and development media shown that had features that were ultimately postponed.</p><h3 id="flockingschoolinggrouping">Flocking/schooling/grouping</h3>]]></description><link>https://docs.islesofyore.com/gameplay-postponed-features/</link><guid isPermaLink="false">612a66f9d7ed010450ad4d08</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Fri, 19 Nov 2021 11:58:36 GMT</pubDate><content:encoded><![CDATA[<p>In preparation for the first early access release, the Steam store page has been updated to better reflect the state of the game. Nonetheless, for the sake of transparency, below is a list of previous marketing and development media shown that had features that were ultimately postponed.</p><h3 id="flockingschoolinggrouping">Flocking/schooling/grouping</h3><p>Fish still made it into the game (disabled on official server, see last note on this page), but schooling and flocking has been postponed. Foundations have been laid, but it hasn&apos;t made into the game yet. Similarly, with limited exceptions, AI generally do not yet behave as coherent groups.</p><h3 id="quetz-landing-limited">Quetz landing (limited)</h3><p>The first trailer showed Quetz landing. It still does this, but on predefined locations where the player can&apos;t currently reach, and quetz fulfills more of a background role right now.</p><h3 id="oceanlake-aquatics">Ocean/Lake aquatics</h3><p>The game had some aquatics in the oceans and fish in lakes prior to to the habitat patch. While they get reworked, they&apos;re currently not on the the new map. Community servers can however allow spawning fish through the config options available on the server.</p>]]></content:encoded></item><item><title><![CDATA[Needs]]></title><description><![CDATA[<p>Your character has various needs to stay alive. Food and water being of chief importance. </p><p>To learn how to track your way to food and water, see the <a href="docs.islesofyore.com/gameplay-smell/">smell</a> documentation.</p><p><strong>Tip</strong>: Termite mounds are available across the map for players with newly spawned characters to eat from. They offer a</p>]]></description><link>https://docs.islesofyore.com/gameplay-needs/</link><guid isPermaLink="false">6194f46e8833f83ae1367238</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Fri, 19 Nov 2021 11:58:28 GMT</pubDate><content:encoded><![CDATA[<p>Your character has various needs to stay alive. Food and water being of chief importance. </p><p>To learn how to track your way to food and water, see the <a href="docs.islesofyore.com/gameplay-smell/">smell</a> documentation.</p><p><strong>Tip</strong>: Termite mounds are available across the map for players with newly spawned characters to eat from. They offer a low-risk strategy to grow your character by avoiding other players and AI in combat.</p>]]></content:encoded></item><item><title><![CDATA[Smell]]></title><description><![CDATA[<p>A smelling system to find food and water, this document gives an overview of the system.</p><hr><p>Pressing the <em>smell</em> key causes the character to start tracking things in the environment that can replenish your needs. This could be water (blue), or food sources (orange). Food sources could be termite mounds</p>]]></description><link>https://docs.islesofyore.com/gameplay-smell/</link><guid isPermaLink="false">61295504d7ed010450ad4ce4</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Fri, 19 Nov 2021 11:58:21 GMT</pubDate><content:encoded><![CDATA[<p>A smelling system to find food and water, this document gives an overview of the system.</p><hr><p>Pressing the <em>smell</em> key causes the character to start tracking things in the environment that can replenish your needs. This could be water (blue), or food sources (orange). Food sources could be termite mounds (great for players who just spawned), AI, or other players.</p><p>Standing still for a moment while tracking allows the smell to settle, making it easier to gauge the direction you need to head in.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/smell_start-1.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/smell_start-1.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/smell_start-1.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/smell_start-1.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Example of the smell trails in the environment. Blue for water, orange for food.</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Character customisation]]></title><description><![CDATA[<p>The game features a character customisation system that allows you to express your vision of what the animal should look like. Below is a brief overview.</p><hr><p>Your starting point will be through the various presets, with (proto-)feather and scaly options if the animal supports it. These represent the very</p>]]></description><link>https://docs.islesofyore.com/gameplay-character-customisation/</link><guid isPermaLink="false">61295511d7ed010450ad4cec</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Fri, 19 Nov 2021 11:57:39 GMT</pubDate><content:encoded><![CDATA[<p>The game features a character customisation system that allows you to express your vision of what the animal should look like. Below is a brief overview.</p><hr><p>Your starting point will be through the various presets, with (proto-)feather and scaly options if the animal supports it. These represent the very base of your character, and can be customised to your liking from there by adding your desired patterns and colouring.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/presets_smol-1.jpg" class="kg-image" alt loading="lazy" width="900" height="215" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/presets_smol-1.jpg 600w, https://docs.islesofyore.com/content/images/2021/11/presets_smol-1.jpg 900w" sizes="(min-width: 720px) 720px"><figcaption>Various presets</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/coelo_protofeather-1.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/coelo_protofeather-1.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/coelo_protofeather-1.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/coelo_protofeather-1.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Proto-feather Coelophysis preset</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/skin_combo_large.jpg" class="kg-image" alt loading="lazy" width="1101" height="1107" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/skin_combo_large.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/skin_combo_large.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/skin_combo_large.jpg 1101w" sizes="(min-width: 720px) 720px"><figcaption>Skin base types. Proto-feather and scaly.</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/coelo_scaly.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/coelo_scaly.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/coelo_scaly.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/coelo_scaly.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Scaly Coelophysis preset</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/coelo_scaly_02.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/coelo_scaly_02.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/coelo_scaly_02.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/coelo_scaly_02.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Another scaly preset for Coelophysis</figcaption></figure><p></p><p>Then just customise to your liking and hit <em>&quot;Rise&quot;</em> to start!</p>]]></content:encoded></item><item><title><![CDATA[Nesting]]></title><description><![CDATA[<p>Nests offer a respawn point for you and your pack to start your character&apos;s journey. Below are instructions on how to create one.</p><hr><h3 id="first-select-the-build-nest-option-in-the-radial-action-menu">First select the &quot;build nest&quot; option in the radial action menu</h3><figure class="kg-card kg-image-card"><img src="https://docs.islesofyore.com/content/images/2021/11/build_nest.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/build_nest.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/build_nest.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/build_nest.jpg 1280w" sizes="(min-width: 720px) 720px"></figure><h3 id="then-place-the-nest">Then place the nest:</h3><figure class="kg-card kg-image-card"><img src="https://docs.islesofyore.com/content/images/2021/11/place_nest-1.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/place_nest-1.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/place_nest-1.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/place_nest-1.jpg 1280w" sizes="(min-width: 720px) 720px"></figure><h3 id="grab-some-foliage-for-bedding-reeds-or-certain-flowers-in-foliage-fields-work">Grab some foliage for bedding, reeds or certain</h3>]]></description><link>https://docs.islesofyore.com/gameplay-nesting/</link><guid isPermaLink="false">6129550bd7ed010450ad4ce8</guid><category><![CDATA[Gameplay]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Wed, 17 Nov 2021 13:44:30 GMT</pubDate><content:encoded><![CDATA[<p>Nests offer a respawn point for you and your pack to start your character&apos;s journey. Below are instructions on how to create one.</p><hr><h3 id="first-select-the-build-nest-option-in-the-radial-action-menu">First select the &quot;build nest&quot; option in the radial action menu</h3><figure class="kg-card kg-image-card"><img src="https://docs.islesofyore.com/content/images/2021/11/build_nest.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/build_nest.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/build_nest.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/build_nest.jpg 1280w" sizes="(min-width: 720px) 720px"></figure><h3 id="then-place-the-nest">Then place the nest:</h3><figure class="kg-card kg-image-card"><img src="https://docs.islesofyore.com/content/images/2021/11/place_nest-1.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/place_nest-1.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/place_nest-1.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/place_nest-1.jpg 1280w" sizes="(min-width: 720px) 720px"></figure><h3 id="grab-some-foliage-for-bedding-reeds-or-certain-flowers-in-foliage-fields-work">Grab some foliage for bedding, reeds or certain flowers in foliage fields work:</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/grab_foliage.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/grab_foliage.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/grab_foliage.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/grab_foliage.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>In the first early access build, only reeds are used as foliage for the nest.</figcaption></figure><h3 id="place-the-foliage-repeat-until-done">Place the foliage, repeat until done</h3><figure class="kg-card kg-image-card"><img src="https://docs.islesofyore.com/content/images/2021/11/place_foliage.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/place_foliage.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/place_foliage.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/place_foliage.jpg 1280w" sizes="(min-width: 720px) 720px"></figure><h3 id="finished">Finished!</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://docs.islesofyore.com/content/images/2021/11/nest_done.jpg" class="kg-image" alt loading="lazy" width="1280" height="720" srcset="https://docs.islesofyore.com/content/images/size/w600/2021/11/nest_done.jpg 600w, https://docs.islesofyore.com/content/images/size/w1000/2021/11/nest_done.jpg 1000w, https://docs.islesofyore.com/content/images/2021/11/nest_done.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Respawning from the nest is now available</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Issues, limitations, and improvements overview]]></title><description><![CDATA[<p>In the interest of transparency, this article gives a general overview of current acknowledged issues and limitations the game has, and provides a rough idea on how these are expected to be resolved. Note that these do not include run-of-the-mill bugs, which will be patched and sorted out.</p><hr><p></p><h2 id="characters-and-locomotion">Characters and</h2>]]></description><link>https://docs.islesofyore.com/issues-overview/</link><guid isPermaLink="false">612918e2d7ed010450ad4bcc</guid><category><![CDATA[Issues]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Sun, 29 Aug 2021 13:28:29 GMT</pubDate><content:encoded><![CDATA[<p>In the interest of transparency, this article gives a general overview of current acknowledged issues and limitations the game has, and provides a rough idea on how these are expected to be resolved. Note that these do not include run-of-the-mill bugs, which will be patched and sorted out.</p><hr><p></p><h2 id="characters-and-locomotion">Characters and locomotion</h2><p>Locomotion improvements are a constant goal, and while the previous patches improved the situation with things like terrain alignment and smoothing out the general movement, there&apos;s still a ways to go before we&apos;re statisfied with it.</p><hr><h2 id="ai">AI</h2><h3 id="limited-behaviour">Limited behaviour</h3><p>In the first early access release, carnivore AI characters already hunt for food, but herbivores currently have no such mechanics. Drinking behaviour is also generally still missing for AI. More complex behaviour beyond tending to basic needs is being thought of.</p><h3 id="pathfinding">Pathfinding</h3><p>The AI traverses across the land and through the water, but pathfinding isn&apos;t flawless yet and is an ongoing point of improvement. This can sometimes lead to AI getting stuck or moving in an unrealistic manner.</p><hr><h3 id="low-resolution-landscapesharp-edges-jaggies">Low resolution landscape/sharp edges (jaggies)</h3><p>Unreal Engine is in a state of transition, with old systems soon parting for new replacements in Unreal&apos;s upcoming major release, UE5. </p><p>One such system is World Composition, which briefly stated, allows you to carve up the world into smaller tiles so that you do not have to load the whole world at once. This system is rather cumbersome, incompatible with newer features of the engine (like the aforementioned water system), and will be replaced in UE5 with a tool called World Partition. </p><p>As such, the decision was made to not tile the landscape, instead using one large contiguous landscape for the first map in the game. The only way to make this feasible at the scale of the world the game has however, is to drastically limit the resolution of the landscape. This in turn causes sharp geometry to be visible in some places, creates a lot more manual work to smooth out terrain (where possible), and is all-around not a great long term solution. However it still felt like the best option for the first incarnation of the map, as it would allow all the systems to be tested at proper scale. This limitation is expected to be resolved when the landscape can be recreated after UE5 becomes stable enough to support it.</p><p>The game has transitioned onto UE5 with 0.6.0, but the new map has not yet been able to take advantage of World Partition. This is slated for improvement at a later time, once the editor tooling becomes sufficient to support this.</p>]]></content:encoded></item><item><title><![CDATA[How to host a community server]]></title><description><![CDATA[<p>This document gives a brief overview of how to get your own community server started. In-depth management of the server (OS/hardware/port forwarding, etc.) itself is out-of-scope, but some tips are included. Anything directly related to the game will be mentioned here.</p><blockquote><strong>Note: Keep in mind that <a href="https://docs.islesofyore.com/server-hosting-selling/">selling in-game</a></strong></blockquote>]]></description><link>https://docs.islesofyore.com/serverhosting-howto/</link><guid isPermaLink="false">6127d690d7ed010450ad4bb2</guid><category><![CDATA[Server Hosting]]></category><dc:creator><![CDATA[MaverickMatryoshka]]></dc:creator><pubDate>Thu, 26 Aug 2021 17:59:57 GMT</pubDate><content:encoded><![CDATA[<p>This document gives a brief overview of how to get your own community server started. In-depth management of the server (OS/hardware/port forwarding, etc.) itself is out-of-scope, but some tips are included. Anything directly related to the game will be mentioned here.</p><blockquote><strong>Note: Keep in mind that <a href="https://docs.islesofyore.com/server-hosting-selling/">selling in-game services that lead to gameplay advantages is prohibited</a></strong></blockquote><hr><h2 id="hosting-options">Hosting options</h2><p>Official servers run on Linux, and likewise community servers are recommended to also run on Linux, though Windows binaries are available. The documentation below contains information for both platforms.</p><blockquote><strong>Note: </strong>If you want to configure the server yourself, you could go for a hoster like <a href="https://www.digitalocean.com/">Digital Ocean</a> or <a href="https://www.vultr.com/">Vultr</a>. If you instead wish to have a pre-configured box, <a href="https://pingperfect.com/gameservers/isles-of-yore-game-server-hosting-rental.php">PingPerfect</a> has support for the game.</blockquote><p>Hardware requirements depend on how many players and AI you want to have running on the server, but generally speaking:</p><ul><li>4GB of RAM</li><li>A few gigs of disk space</li><li>The faster the CPU, the better</li></ul><p></p><hr><p></p><h2 id="server-user">Server user</h2><h3 id="linux">Linux</h3><p>Prepare a new user account that will run the actual server. The command used may vary depending on the Linux distribution you go with, but on Ubuntu, this would be <code>adduser mygameserveruser</code>. Subsequent documentation will continue with <code>mygameserveruser</code> as your game server user, adjust where appropriate.</p><h3 id="windows">Windows</h3><p>No suggestions at this time.</p><p></p><hr><p></p><h2 id="installing-the-server-files">Installing the server files</h2><p>The first step is to download the server binaries through Steam, and copy them over to your server instance. A suggestion for Linux systems would be to <code>/var/IslesOfYore</code>. From this point on the documentation will assume this path, but you can substitute it for your own if desired.</p><p>You <em>could</em> opt to do this manually (downloading through Steam Library -&gt; Tools -&gt; Isles of Yore Dedicated Server, and copying the files over to the server manually), but a smoother way of getting the server binaries is through <a href="https://developer.valvesoftware.com/wiki/SteamCMD">SteamCMD</a>.</p><h3 id="linux-1">Linux</h3><ol><li>First install necessary packages for the server to run smoothly: <br><code><em>apt-get</em> <em>update</em> <em>&amp;&amp;</em> <em>apt-get</em> <em>install</em> <em>-y</em> <em>lib32gcc1</em> <em>libc6-i386</em> <em>lib32stdc++6</em> <em>libsdl2-2.0</em> <em>wget</em> <em>unzip</em></code></li><li>Switch to the user we created earlier, e.g.: <code>su <em>mygameserveruser</em></code>. Make sure you are in your home directory (<code>cd ~/</code>).</li><li>Download SteamCMD with: try <code>wget <a href="http://media.steampowered.com/client/steamcmd_linux.tar.gz" rel="nofollow">http://media.steampowered.com/client/steamcmd_linux.tar.gz</a></code> and when it&apos;s done downloading, <code>tar -xvzf steamcmd_linux.tar.gz</code> to unpack</li><li>Makes sure your shell is in the install directory, and run (after you change the install dir in the command):<br><code><em>./steamcmd.sh</em> <em>+force_install_dir</em> YOUR_INTENDED_INSTALL_DIRECTORY <em>+login</em> <em>anonymous</em> <em>+app_update</em> 1827330 <em>validate</em> <em>+quit</em></code></li><li>Once that&apos;s done, connect to your server, escalate to root user (stay in the root user for the remaining duration of the guide), and make the server file executable:</li></ol><pre><code class="language-bash">chmod +x /var/IslesOfYore/IslesOfYoreServer.sh</code></pre><h3 id="windows-1">Windows</h3><ol><li>Create the installation folder, as mentioned above</li><li>Download SteamCMD from <a href="https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip" rel="noreferrer">https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip</a>.</li><li>Unzip SteamCMD and open a shell in the directory you unzipped in. Then run (after you change the install dir in the command):<br><code><em>./steamcmd.exe</em> <em>+force_install_dir</em> YOUR_INTENDED_INSTALL_DIRECTORY <em>+login</em> <em>anonymous</em> <em>+app_update</em> 1827320 <em>validate</em> <em>+quit</em></code></li></ol><p></p><hr><p></p><h2 id="firewall">Firewall</h2><h3 id="linux-2">Linux</h3><p>We&apos;ll need to open a port on the server. The below commands assume using the <a href="https://help.ubuntu.com/community/UFW">UFW</a> firewall tooling (apply the info to your own tool if you use something else), and default ports, see the next section for info on custom ports.</p><pre><code class="language-bash">ufw allow ssh
ufw default deny
ufw allow 27015/udp
ufw enable</code></pre><h3 id="windows-2">Windows</h3><p>There is currently no documentation for this step for Windows, check best practices for your version of Windows server on how to enable port <code>27015</code>over the <code>udp</code> protocol.</p><h3 id="optionalcustom-portsmultiple-instances">Optional - Custom ports/multiple instances</h3><p>Multiple instances can be run on the same server, as long as ports are different. Things to keep in mind:</p><ol><li>GamePort comes in pairs (default <code>7777</code> - <code>7778</code>), and you would typically add the first member of that pair. I.e. <code>7777</code> (port) - <code>7778</code> (paired port), <code>7779</code>-<code>7780</code>, <code>7781</code>-<code>7782</code>). However, due to the current NetDriver selected for the game, this port does not seem to be used externally and will be bound to a random open (interal) port on startup. This port does not need to be opened on the firewall.</li><li>Data is routed externally through the QueryPort, which defaults to <code>27015</code>. It cannot be between <code>27020</code> and <code>27050</code> as these are already reserved by Steam. <br><strong>Watch out:</strong> Ports vastly above or beyond the default <code>27015</code> will likely also not work, keep the number somewhere around the default port.</li></ol><p>Actually setting the port and query port can be done by either updating the <code>Engine.ini</code>:</p><ol><li>Create an <code>Engine.ini</code> file in the install directory <br><strong>Windows</strong>: <code>InstallDirectory\IslesOfYore\Saved\Config\WindowsServer</code><br><strong>Linux</strong>: <code>InstallDirectory/IslesOfYore/Saved/Config/LinuxServer</code></li><li>Make sure it has this data (here using <code>27016</code> as our custom port):</li></ol><pre><code class="language-ini">[OnlineSubsystemSteam]
GameServerQueryPort=27016</code></pre><p>Or running the executable with flags:</p><p><code>-QueryPort=27016</code></p><p><strong>Tip: </strong>In Windows, you can make a shortcut to the executable and add the flags to the end of the target field.</p><p></p><hr><p></p><h2 id="optional-tooling">Optional Tooling</h2><h3 id="windows-auto-update-and-restart-script">Windows auto-update and restart script</h3><p>This script checks for updates and restarts on crash. Adjust ports as intended.</p><pre><code class="language-batch">@echo off
cls

TITLE Isles of Yore Gameserver

SET steamcmd_path=C:\Your\Path\To\SteamCMD_Directory
SET server_path=C:\Your\Path\To\The\Server_Directory

REM Server Settings Section 
SET query_port=27015
SET rest_port=8085

:IslesOfYoreServerUpdate
echo (%date% -- %time%) Server is Updating
cd %steamcmd_path%
start /wait steamcmd.exe +login anonymous +force_install_dir %server_path% +app_update 1827320 verify +quit

goto IslesOfYoreServer 

:IslesOfYoreServer
cd %server_path%

echo (%date% -- %time%) Server Started
start /wait IslesOfYoreServer.exe -restport=%port% -queryport=%query_port% -log | set /P &quot;=&quot;

echo (%date% -- %time%) WARNING: Server crashed, restarting server.
goto IslesOfYoreServerUpdate</code></pre><p>^Note that this sets the ports as defined in the script, which means you cannot use the launch arguments to define the ports.</p><h3 id="linux-service">Linux service</h3><p>This is not mandatory but it is recommended to set-up a service that automatically restarts the game on server restart or when the process crashes. The following steps again assume Ubuntu/Debian, adjust for your distribution if necessary.</p><p> To do this, add a <code>yore-game-server.service</code> file in <code>/etc/systemd/system</code>.</p><p>The file should look like this:</p><pre><code class="language-bash">[Unit]
Description=Isles of Yore game server
After=network-online.target
Wants=network-online.target

[Service]
User=mygameserveruser
ExecStart=/var/IslesOfYore/IslesOfYoreServer.sh start
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target</code></pre><p><strong>Note</strong>: make sure the &quot;user&quot; matches the user you created earlier.</p><p>Now run the following command to enable the service:</p><pre><code class="language-bash">systemctl enable yore-game-server</code></pre><h3 id="linux-startup-script">Linux startup script</h3><p>If you want auto-updating on Linux, replace the <code>ExecStart</code> line from the above mentioned Linux service with a path to a bash script of your own:</p><pre><code class="language-bash">$STEAMCMD_DIR=YOUR_STEAMCMD_INSTALL_DIRECTORY #Adjust this!
$GAME_DIR=YOUR_GAME_INSTALL_DIR #Adjust this!

cd $STEAMCMD_DIR
echo &quot;Installing game at $GAME_DIR&quot;
unbuffer ./steamcmd.sh +force_install_dir $GAME_DIR +login anonymous +app_update 1827330 validate +quit

cd $GAME_DIR
echo &quot;Starting server&quot;

chmod +x ./IslesOfYoreServer.sh
./IslesOfYoreServer.sh</code></pre><p></p><hr><p></p><h2 id="wrapping-up-linux-file-permissions">Wrapping up: Linux file permissions</h2><p>For Linux installs, the last step we need to perform is sort out the file permissions so that your newly created game user can run the files. For this, do the following and make sure it matches your user:</p><pre><code class="language-bash">chown -R mygameserveruser:mygameserveruser /var/IslesOfYore/</code></pre><p></p><hr><p></p><h2 id="starting-the-server">Starting the server</h2><h3 id="linux-3">Linux</h3><p>Either execute <code>/var/IslesOfYore/IslesOfYoreServer.sh</code>, or better, run the service you set up with service yore-game-server start. Mind that you need to switch into the game server user you set-up to do the former, and the root user to to the latter.</p><h3 id="windows-3">Windows</h3><p>You would run the <code>IslesOfYoreServer.exe</code> file.</p><p></p><hr><p></p><h3 id="addendum-what-to-do-in-case-of-an-update">Addendum: what to do in case of an update</h3><p>If you&apos;re doing things manually, in case of an update, you&apos;ll need copy over the newly updated server files again.<br><br>Just to reiterate, a smoother way of working is to use <a href="https://developer.valvesoftware.com/wiki/SteamCMD">SteamCMD</a>. See the documentation above, where you would then need to run the command that contains <code>app_update</code> in the <code>Installing the server files</code> step again. The Windows script shared above does this automatically on start-up.</p><p>Keep in mind that your configuration files and user data live in <code>[InstallDirectory]/Saved/Yore/</code>, so keep them safe in case you opt to delete the folder on update.</p><hr><p>Next, see how to configure your server to suit your intended playstyle: <a href="https://docs.islesofyore.com/serverhosting-configuration/">server configuration</a>.</p>]]></content:encoded></item></channel></rss>