Keen:Planet Modding/Fast Travel: Difference between revisions

From Medieval Engineers Wiki
Jump to navigation Jump to search
mNo edit summary
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Fast travel settings modding==
<noinclude>{{SEO|image_url=http://www.medievalengineerswiki.com/images/b/b7/KeenLogoBig.png|description=In Medieval Engineers players can only fast travel through reachable terrain, blocked terrain has to be crossed on foot or walked around.}}
{{Keen:OCH}}
 
 
{{Version <!-- Do not change the version until the entire page is up-to-date -->
|release=0|major=4|minor=X|suppress=true}}
[[Category:Keen_Modding_Guides]]</noinclude>
==[[Keen:Planet Modding/Fast Travel|Fast travel settings modding]]==
In Medieval Engineers players can only fast travel through reachable terrain, blocked terrain has to be crossed on foot or walked around.
In Medieval Engineers players can only fast travel through reachable terrain, blocked terrain has to be crossed on foot or walked around.
In this section of the guide we will show you how to mod which sectors are blocked.
In this section of the guide we will show you how to mod which sectors are blocked.
There are 2 ways you can go about it:
There are 2 ways you can go about it:
===Generate automatically based on terrain shape===
 
 
===1 Generate automatically based on terrain shape===
Game is capable of creating fast travel map on its own based on height and terrain steepness. It is possible to mod thresholds for both height and steepness.
Game is capable of creating fast travel map on its own based on height and terrain steepness. It is possible to mod thresholds for both height and steepness.
You will find the thresholds in Content\Data\Game\FastTravel.sbc. In a MyObjectBuilder_TerrainReachabilityProviderDefinition.
You will find the thresholds in Content\Data\Game\FastTravel.sbc. In a <code>MyObjectBuilder_TerrainReachabilityProviderDefinition</code>.


<Definition xsi:type="MyObjectBuilder_TerrainReachabilityProviderDefinition">
<code><RiseThreshold></code> - Sets min. terrain height change which will cause that area is unreachable.
<Id Type="MyObjectBuilder_TerrainReachabilityProviderDefinition" Subtype="Terra"/>


<RiseThreshold>.14</RiseThreshold>
<code><HeightThreshold></code> - Sets height of terrain after which area is unreachable, if it goes over this value. Range is 0 - 1.  
<HeightThreshold>.6</HeightThreshold>
   
<OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward>
<OverrideBackward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Back_ForbiddenAreas.png</OverrideBackward>
<OverrideLeft>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Left_ForbiddenAreas.png</OverrideLeft>
<OverrideRight>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Right_ForbiddenAreas.png</OverrideRight>
<OverrideUp>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Up_ForbiddenAreas.png</OverrideUp>
<OverrideDown>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Down_ForbiddenAreas.png</OverrideDown>
</Definition>


<RiseThreshold> - Sets min. terrain height change which will cause that area is unreachable.
If there are texture overrides in the definition, you have to erase them in order for the parameters to take effect. Texture overrides are nodes that are called in this fashion: <OverrideNAMEOFFACE>. You will learn more about these overrides in the next part of Fast travel modding.
<HeightThreshold> - Sets height of terrain after which area is unreachable, if it goes over this value. Range is 0 - 1.  


If there are texture overrides in the definition, you have to erase them in order for the parameters to take effect. Texture overrides are used to override the generated fast travel map. You will learn more about these overrides in the next part of Fast travel modding.


===Creating fast travel texture override===
===2 Creating fast travel texture override===
If you want to have full control over which areas are reachable and which are not regardless of terrain, you can create a simple texture on which you mark unreachable areas.
If you want to have full control over which areas are reachable and which are not regardless of terrain, you can create a simple texture on which you mark unreachable areas. This is how the current system of travel only by roads is done. The texture override matches the roads on the map.


The texture is 80x80 pixels, RGB 8 bit. Black pixels forbid entrance.  
The texture is 80x80 pixels, RGB 8 bit. Black pixels forbid entrance.  


When you have the texture, select route to it in the definition:
When you have the texture, select route to it in the definition:
<pre><OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward></pre>
<syntaxhighlight lang="xml"><OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward></syntaxhighlight>
Reachability definition example:
Reachability definition example:
<pre>
<syntaxhighlight lang="xml" line>
<Definition xsi:type="MyObjectBuilder_TerrainReachabilityProviderDefinition">
<Definition xsi:type="MyObjectBuilder_TerrainReachabilityProviderDefinition">
<Id Type="MyObjectBuilder_TerrainReachabilityProviderDefinition" Subtype="Terra"/>
    <Id Type="MyObjectBuilder_TerrainReachabilityProviderDefinition" Subtype="Terra"/>
<RiseThreshold>.14</RiseThreshold>
    <RiseThreshold>.14</RiseThreshold>
<HeightThreshold>.6</HeightThreshold>
    <HeightThreshold>.6</HeightThreshold>
<OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward>
    <OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward>
</Definition>
</Definition>
</pre>
</syntaxhighlight>
This definition would generate fast travel reachability everywhere, except for front planet face (Fareon kingdom) where fast travel reachability is created based on your texture.
This definition would generate fast travel reachability everywhere, except for front planet face (Fareon kingdom) where fast travel reachability is created based on your texture.


===Development reachability===
===Development reachability===
Claimable area size, border highlight, contested timer modding
Claimable area size, border highlight, contested timer modding, Size of the area and highlight properties are moddable as well.
Size of the area and highlight properties are moddable as well.
 


===Area borders highlight===
===Area borders highlight===
<NeutralColor R="225" G="32" B="0" A="64" /> - Set color of an unowned territory
<syntaxhighlight lang="xml" line>
<SelfColor R="0" G="255" B="0" A="64" /> - Sets color of area border owned by you
<NeutralColor R="225" G="32" B="0" A="64" /> <!-- Set color of an unowned territory -->
<AliedColor R="65" G="105" B="225" A="64" /> - Sets color of area border that belongs to allies  
<SelfColor R="0" G="255" B="0" A="64" /> <!-- Sets color of area border owned by you -->
<EnemyColor R="225" G="32" B="0" A="64" /> - Sets color of area border that is hostile
<AliedColor R="65" G="105" B="225" A="64" /> <!-- Sets color of area border that belongs to allies -->
<WallSettings Depth="15" Rise="3" SegmentCount"71" End="115" /> - Changes shape of the border. Depth sets how deep is border submerged. Rise sets how tall is the border.  
<EnemyColor R="225" G="32" B="0" A="64" /> <!-- Sets color of area border that is hostile -->
<Fade Start="71" End="115" /> - This sets at which point the border starts to fade.  
<WallSettings Depth="15" Rise="3" SegmentCount"71" End="115" /> <!-- Changes shape of the border. Depth sets how deep is border submerged. Rise sets how tall is the border. -->
Contested timer
<Fade Start="71" End="115" /> <!-- This sets at which point the border starts to fade. -->
When players claim area with claimblock, area goes to a “contested” phase for some amount of time, in this phase other players can still attempt to build their own claim block and claim the area. This time is moddable.
</syntaxhighlight>
Content\Data\Game\SessionComponents.sbc contains definition called MyObjectBuilder_AreaOwnershipSystemDefinition. To mod this value, add this definition to your mod with changed value of <ContestedTimeInMinutes> parameter.


Permissions modding - what is/isn’t allowed to do in claimed areas
Have you noticed you cannot mine voxels in claimed areas of your enemies? That is because of how we chose to define permission settings for safe area. And yes, this and much more is also moddable :).
This time there is no need create any textures, we will only need to edit one text file and add it to your mod.
You will find the file with permissions definitions in Data\Permissions.sbc
Descriptions of permission nodes:
<pre>
<Permission Name="Build">
      <Usergroup Groupname="Owner" Allowed="true"/>
      <Usergroup Groupname="Allies" Allowed="true"/>
      <Usergroup Groupname="Neutral" Allowed="false"/>
      <Usergroup Groupname="Enemies" Allowed="false"/>
</Permission>
</pre>
Permission definition sets which groups of players are allowed to perform an action. In this example, it is “Build” action.


<pre><Usergroup Groupname=”Owner” Allowed=”true”></pre>
===Contested timer===
Groupname refers to group of players, for which we are setting the permission(in this example it is player who owns the area). Allowed parameter allows/disallows the action depending on if it is set to “true” or “false”.
When players claim area with claimblock, area goes to a “contested” phase for some amount of time, in this phase other players can still attempt to build their own claim block and claim the area. This time is moddable.
 
<pre><IsDefault>true</IsDefault></pre>
Parameter sets which area permission set is used for player owned territories.


===Description of available actions to set permissions for:===
Content\Data\Game\SessionComponents.sbc contains definition called MyObjectBuilder_AreaOwnershipSystemDefinition. To mod this value, add this definition to your mod with changed value of <code><ContestedTimeInMinutes></code> parameter.
#Name=”Build” -> block placement permissions
#Name=”Repair” -> Repairing/building already placed blocks
#Name=”Deconstruct” -> Deconstructing
#Name=”QuickDeconstruct” -> Faster deconstruction
#Name=”VoxelEdit” -> Mining or shoveling
#Name=”Destroy” -> Damage with hand weapons
#Name=”Interaction” -> Chest opening, door opening
#Name=”ClaimBlockInteraction” -> ClaimblockGui


===List of available Groupnames:===


#Groupname: “Owner” -> Player who owns area
<noinclude>View the full [[Keen:Planet Modding - Full Guide|Planet Modding Guide]]</noinclude>
#roupname: “Allies” -> Mostly faction members of owner of the area
#Groupname: “Neutral” -> Random players, who are not in an enemy faction (mostly everyone without faction allegiance)
#Groupname: “Enemies” -> Players in factions that are hostile to your faction

Latest revision as of 20:24, 18 July 2022



Version: 0.4

Fast travel settings modding

In Medieval Engineers players can only fast travel through reachable terrain, blocked terrain has to be crossed on foot or walked around. In this section of the guide we will show you how to mod which sectors are blocked. There are 2 ways you can go about it:


1 Generate automatically based on terrain shape

Game is capable of creating fast travel map on its own based on height and terrain steepness. It is possible to mod thresholds for both height and steepness. You will find the thresholds in Content\Data\Game\FastTravel.sbc. In a MyObjectBuilder_TerrainReachabilityProviderDefinition.

<RiseThreshold> - Sets min. terrain height change which will cause that area is unreachable.

<HeightThreshold> - Sets height of terrain after which area is unreachable, if it goes over this value. Range is 0 - 1.

If there are texture overrides in the definition, you have to erase them in order for the parameters to take effect. Texture overrides are nodes that are called in this fashion: <OverrideNAMEOFFACE>. You will learn more about these overrides in the next part of Fast travel modding.


2 Creating fast travel texture override

If you want to have full control over which areas are reachable and which are not regardless of terrain, you can create a simple texture on which you mark unreachable areas. This is how the current system of travel only by roads is done. The texture override matches the roads on the map.

The texture is 80x80 pixels, RGB 8 bit. Black pixels forbid entrance.

When you have the texture, select route to it in the definition:

<OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward>

Reachability definition example:

<Definition xsi:type="MyObjectBuilder_TerrainReachabilityProviderDefinition">
    <Id Type="MyObjectBuilder_TerrainReachabilityProviderDefinition" Subtype="Terra"/>
    <RiseThreshold>.14</RiseThreshold>
    <HeightThreshold>.6</HeightThreshold>
    <OverrideForward>Data/PlanetDataFiles/EarthLike/FastTravelOverrides/Front_ForbiddenAreas.png</OverrideForward>
</Definition>

This definition would generate fast travel reachability everywhere, except for front planet face (Fareon kingdom) where fast travel reachability is created based on your texture.

Development reachability

Claimable area size, border highlight, contested timer modding, Size of the area and highlight properties are moddable as well.


Area borders highlight

<NeutralColor R="225" G="32" B="0" A="64" /> <!-- Set color of an unowned territory -->
<SelfColor R="0" G="255" B="0" A="64" /> <!-- Sets color of area border owned by you -->
<AliedColor R="65" G="105" B="225" A="64" /> <!-- Sets color of area border that belongs to allies -->
<EnemyColor R="225" G="32" B="0" A="64" /> <!-- Sets color of area border that is hostile -->
<WallSettings Depth="15" Rise="3" SegmentCount"71" End="115" /> <!-- Changes shape of the border. Depth sets how deep is border submerged. Rise sets how tall is the border. -->
<Fade Start="71" End="115" /> <!-- This sets at which point the border starts to fade. -->


Contested timer

When players claim area with claimblock, area goes to a “contested” phase for some amount of time, in this phase other players can still attempt to build their own claim block and claim the area. This time is moddable.

Content\Data\Game\SessionComponents.sbc contains definition called MyObjectBuilder_AreaOwnershipSystemDefinition. To mod this value, add this definition to your mod with changed value of <ContestedTimeInMinutes> parameter.


View the full Planet Modding Guide