You are viewing a potentially older version of this package. View all versions.
ZenDragon-ZenPortal-0.4.1 icon

ZenPortal

Enhanced portals: Highly immersive, Improved QoL, Progression-based, 100% gamepad support.

Date uploaded 5 days ago
Version 0.4.1
Download link ZenDragon-ZenPortal-0.4.1.zip
Downloads 114
Dependency string ZenDragon-ZenPortal-0.4.1

This mod requires the following mods to function

ZenDragon-Zen_ModLib-1.9.0 icon
ZenDragon-Zen_ModLib

Shared code library used in all ZenMods.

Preferred version: 1.9.0

README

ZenPortal

Portals Enhancement.

Designed to make portals into a challenging and rewarding experience. Reduce the over-use of them by keeping ships relevant but still being able to cross the world with portals when needed after investing in the creation of a portal network.

Extends the portal system to make it more immersive with improved QoL and balanced progression-based gameplay. Start with no portals. Unlock them as you adventure throughout the game. Highly configurable.

Full gamepad support. No typing portal tags required.

  • Link portals using Rune Shards, which are collected from the Runestones found throughout the world.
  • Fuel is required for portal activation. This means the portal is in the "off" state most of the time. No more falling in by accident. No more constant portal sound effects when you are standing near them. (Both ends are fueled simultaneously)
  • Biome & Altitude restricted construction. (Admin can override in god mode by holding Alt)
  • Option: The player becomes sick when they use a portal and receives a temporary debuff. Sleep to cure sooner. (Configurable)
  • Option: Restrict travel to known biomes only.
  • Option: Wood portals cannot connect to Stone portals and vice versa.
  • Portals with no portal tag do not connect.
  • Existing portals on existing worlds will still work.
  • Backwards compatible, if the mod is removed, the portals will still work.

Screenshots

Runeshard Tooltip

Runeshard Inventory

Runeshard Pickup

Runestone Interaction

Portal Shard Attached

Advanced Admin Overrides

Normally the player will interact with all portals via the Runeshards mechanism. However, the admin may want to setup explicit portals that are always locked and can not be changed by the player. This is possible:

Explicitly set portal tags:

  • Open the portal tag text editor by holding the left alt key while being in admin god mode when interacting with a portal.
  • The tag text will be the portal tag name and display on the hover text.
  • Hide name: Prefix with a . and the name will be hidden from the player's view.
  • Prevent change: Suffix with ! and then the portal tag will be locked and cannot be changed by the player with a Runeshard.
  • Letter case matters, so locked! is not the same as Locked!
  • The tag name will be visible unless prefixed with dot: .hidden

Console commands:

  • zen_portalrune Create a pair of Runeshards at your current position.
  • zen_portalcure Remove portal sickness from yourself.

Extend Functionality with Additional ZenMods

  • ZenHoverItem : View item icons when hovering over objects.
  • ZenUseItem: Interact directly from your inventory without using your 1-8 hot bar.
  • ZenMap: Perfect pairing with ZenPortal and ZenCompass for a low-map experience with limited access to navigation data.
  • ZenSign: Assign items to signs and view the total available in nearby chests.

Improve Your Experience

CORE MODS

The full collection of all Zen MODS:

  • Radically improved QoL
  • Incredible performance
  • Pre-configured
  • 100% Gamepad support
  • Spectacularly immersive

Enjoy!

Sample Config File:

## Settings file was created by plugin ZenPortal v0.4.0
## Plugin GUID: ZenDragon.ZenPortal

[Build - Cost]

## [Admin] For new games it is recommended to enable this for Wood and Stone portals. It is disabled by default for Wood portals so as not to break existing worlds.
## Require portals of the selected type to have heavy support.
## If checked then the portal type requires heavy building materials for support.
## If unchecked then light materials can be used to support the portal.
## Heavy mats are ground/stone/iron/etc. Light mats are woods.
## Increase or decrease portal tower construction challenge.
## WARNING: Turning this on for wood portals on existing worlds will cause any wood portals with weak support to collapse.
# Setting type: PortalType
# Default value: PortalStone
# Acceptable values: PortalWood, PortalStone
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Requires Heavy Support = PortalWood, PortalStone

## [Admin] Crafting station required to build the wood portal
# Setting type: String
# Default value: Workbench
# Acceptable values: None, Workbench, Forge, Stonecutter, Cauldron, ArtisanTable, BlackForge, GaldrTable, MeadKetill, FoodPreparationTable
Portal Wood - Station = Workbench

## [Admin] List of resources required to build a Wood Portal (Vanilla: GreydwarfEye:10, FineWood:20, SurtlingCore:2)
# Setting type: StringList
# Default value: GreydwarfEye:10, ElderBark:20, SurtlingCore:2
Portal Wood - Resources = GreydwarfEye:10, ElderBark:20, SurtlingCore:2

## [Admin] Crafting station required to build the stone portal
# Setting type: String
# Default value: Stonecutter
# Acceptable values: None, Workbench, Forge, Stonecutter, Cauldron, ArtisanTable, BlackForge, GaldrTable, MeadKetill, FoodPreparationTable
Portal Stone - Station = Stonecutter

## [Admin] List of resources required to build a Stone Portal (Vanilla: GreydwarfEye:10, Grausten:30, MoltenCore:2)
# Setting type: StringList
# Default value: GreydwarfEye:10, Grausten:30, MoltenCore:2
Portal Stone - Resources = GreydwarfEye:10, Grausten:30, MoltenCore:2

[Build - Restrictions]

## [Admin] Biomes which allow wooden portals to be built. (Vanilla: All)
# Setting type: Biome
# Default value: Swamp, Mountain
# Acceptable values: None, Meadows, Swamp, Mountain, BlackForest, Plains, AshLands, DeepNorth, Ocean, Mistlands, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Allow Biomes - Wood = Swamp, Mountain

## [Admin] Biomes which allow stone portals to be built. (Vanilla: All)
# Setting type: Biome
# Default value: Mountain, AshLands
# Acceptable values: None, Meadows, Swamp, Mountain, BlackForest, Plains, AshLands, DeepNorth, Ocean, Mistlands, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Allow Biomes - Stone = Mountain, AshLands

## [Admin] Minimum distance from any disallowed biome before a portal can be built.
## This prevents placing a portal just inside the edge of an allowed biome.
# Setting type: Int32
# Default value: 25
# Acceptable value range: From 0 to 100
Allow Biomes - Margin = 25

## [Admin] Only allow portals to be built above this altitude in the Meadows.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - Meadows = 0

## [Admin] Only allow portals to be built above this altitude in the BlackForest.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - BlackForest = 0

## [Admin] Only allow portals to be built above this altitude in the Swamp.
# Setting type: Int32
# Default value: 45
# Acceptable value range: From 0 to 500
Min Altitude - Swamp = 45

## [Admin] Only allow portals to be built above this altitude in the Mountain.
# Setting type: Int32
# Default value: 150
# Acceptable value range: From 0 to 500
Min Altitude - Mountain = 150

## [Admin] Only allow portals to be built above this altitude in the Plains.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - Plains = 0

## [Admin] Only allow portals to be built above this altitude in the Mistlands.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - Mistlands = 0

## [Admin] Only allow portals to be built above this altitude in the AshLands.
# Setting type: Int32
# Default value: 80
# Acceptable value range: From 0 to 500
Min Altitude - AshLands = 80

## [Admin] Only allow portals to be built above this altitude in the DeepNorth.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - DeepNorth = 0

## [Admin] Only allow portals to be built above this altitude in the Ocean.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 500
Min Altitude - Ocean = 0

[Compatibility]

## [Admin] Size of the world if modded from default.  Vanilla: 10000
# Setting type: Int32
# Default value: 10000
# Acceptable value range: From 5000 to 50000
World Size = 10000

[Portal - Fuel]

## [Admin] Prefab name of the fuel item for wood portals, leave blank for no fuel requirement
# Setting type: String
# Default value: BoneFragments
Wood Portal Fuel Item = BoneFragments

## [Admin] Prefab name of the fuel item for stone portals, leave blank for no fuel requirement
# Setting type: String
# Default value: CharredBone
Stone Portal Fuel Item = CharredBone

## [Admin] Max amount of units of fuel a portal can hold.
# Setting type: Int32
# Default value: 10
# Acceptable value range: From 1 to 60
Max Fuel (Minutes) = 10

[Portal - Rune]

## [Admin] Prefab name of the item that is required to fracture Runestones.
# Setting type: String
# Default value: Obsidian
Fracture Item = Obsidian

## [Admin] The amount of "Fracture Item" required.
# Setting type: Int32
# Default value: 2
# Acceptable value range: From 1 to 50
Fracture Item - Amount = 2

## [Admin] Do you want to eat this rock?
## [logout required for changes to take effect]
# Setting type: Boolean
# Default value: true
Rune Shard - Consumable = true

## [Admin] Can the shard be used on mage tables?
## [logout required for changes to take effect]
# Setting type: Boolean
# Default value: true
Rune Shard - Mage Table = true

## [Admin] Display the biome that the rune shard represents on the tooltip?
## NOTE: Admin can always see this by being in god mode and holding the Alt key.
# Setting type: Boolean
# Default value: false
Rune Shard - Display Biome = false

## [Admin] The weight of a rune shard.
## [logout required for changes to take effect]
# Setting type: Single
# Default value: 2
# Acceptable value range: From 0.1 to 300
Rune Shard - Weight = 2

## [Admin] Total number of portal groups available.
## Each Runestone will look the same to all players who are part of the same portal group.
## If two players are in different groups and look at the same Runestone they will see diff symbols.
## If they are in the same group they will see the same symbols.
## Groups are controlled via the player key: portalgroup
## Note, group 0 is the default group if no group is assigned.
## To have all players see the same symbols set this to 1 to force all players into the same group.
## If this config is greater than 1 then players are assigned to a random group if they do not have one when they next login.
## Admin command syntax:
## - zen_portalgroup
## Set another player's group who is logged on:
## - Turn on command relay in Zen.ModLib configs:
## - relay playername zen_portalgroup
## Remove a player from all groups and let the system assign them a random one on next login:
## - first, figure out what group they are in using listkeys, then remove their key:
## - relay playername removekeyplayer portalgroup N
# Setting type: Int32
# Default value: 32
# Acceptable value range: From 1 to 32
Rune Shard - Portal Groups = 32

## [Admin] Total number of unique channels available per biome.
## Higher numbers make it easier to find open channels on Runestone.
## Lower numbers make it harder and requires venturing into different biomes to find open channels.
## NOTE: Changing this on existing worlds may cause existing Runestones to be assigned different symbols.
# Setting type: Int32
# Default value: 4
# Acceptable value range: From 1 to 32
Rune Shard - Channels Per Biome = 4

[Portal - Sickness]

## [Admin] Vomit and lose all food after using a portal.
# Setting type: Boolean
# Default value: true
Puke On Use = true

## [Admin] If true then the player is unable to eat until portal sickness wears off.
## However, they can still drink meads and potions.
# Setting type: Boolean
# Default value: false
Puke On Eat = false

## [Admin] Can not teleport while portal sickness is in effect. 
## If false the portal sickness timer will be reset after each portal jump.
# Setting type: Boolean
# Default value: false
Prevent Teleport = false

## [Admin] Number of minutes that players will be sick after using a portal.
## Sleep will remove the sickness instantly.
## Set to 0 to disable portal sickness.
# Setting type: Int32
# Default value: 5
# Acceptable value range: From 0 to 120
Duration (Minutes) = 5

## [Admin] Movement speed adjustment when portal sickness is in effect.
## Set to 1 to for normal movement speed.
# Setting type: Single
# Default value: 0.8
# Acceptable value range: From 0 to 1
Debuff - Movement Speed = 0.8

## [Admin] Stamina regen multiplier when portal sickness is in effect.
## Set to 1 for normal regen rate.
# Setting type: Single
# Default value: 0.5
# Acceptable value range: From 0 to 1
Debuff - Stamina Regen = 0.5

## [Admin] Health regen multiplier when portal sickness is in effect.
## Set to 1 to for normal regen rate.
# Setting type: Single
# Default value: 0.5
# Acceptable value range: From 0 to 1
Debuff - Health Regen = 0.5

## [Admin] Health regen amount per tick when portal sickness is in effect. 
## Negative numbers do harm, positive numbers heal.
## This will run for aproximately 10s whenever the player walks through a portal.
## Set to 0 to disable.
# Setting type: Single
# Default value: 0
# Acceptable value range: From -2 to 2
Debuff - Health Per Second = 0

[Portal - Travel]

## [Admin] Restrict travel so that you can only enter a portal if the destination biome is already discovered.
## This is helpful to require the first voyage into a new biome to always be done manually once.
## For example: Ashlands
# Setting type: PortalType
# Default value: PortalWood, PortalStone
# Acceptable values: PortalWood, PortalStone
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
Require Known Destination Biome = PortalWood, PortalStone

## [Admin] Wood portals can only link to other wood portals, stone to stone. (Vanilla: false)
## This has no effect on admin created "locked!" tags, they can always link to any type of portal.
# Setting type: Boolean
# Default value: true
Connection - Same Type Only = true

[Rune - Colors]

## Portal rune's text color when connected to another portal.
# Setting type: Color
# Default value: FFE300FF
Portal HoverText - Link Connected = FFE300FF

## Text color when pending a connection to another portal.
## NOTE: Clear means that it will fallback to the default color (white)
# Setting type: Color
# Default value: 00000000
Rune HoverText - Link Pending = 00000000

## Text color when not in use in any portals.
# Setting type: Color
# Default value: FFE300FF
Rune HoverText - Link Available = FFE300FF

## Rune text color when they are already connected to another portal somewhere in the world.
# Setting type: Color
# Default value: AAAAAAFF
Rune HoverText - Link Unavailable = AAAAAAFF

## Inventory item rune text color when not in use in any portals
# Setting type: Color
# Default value: FFE300FF
Rune Inventory - Link Available = FFE300FF

## Inventory item rune text color when in use by connected portals somewhere in the world
# Setting type: Color
# Default value: AAAAAAFF
Rune Inventory - Link Unavailable = AAAAAAFF

## Inventory item rune text color when the rune is in only one portal somewhere in the world
# Setting type: Color
# Default value: 00000000
Rune Inventory - Link Pending = 00000000


Like My Mods? Donations Welcome

Bitcoin: bc1q34lrc82dp73jhv9ylefz0gvmeqfn96e938p4pf

Donation QR

CHANGELOG

v0.5.4

  • fix portal sickness was always removing food after teleport, even if config option was disabled.

v0.5.3

  • new option: prevent portals from being built inside dungeon entrances. default to 10m away to prevent against cheesing cave entrances as portal destinations.

v0.5.2

  • fix KeyHint to display correctly when opening containers.
  • update for Zen.ModLib v1.9.0

v0.5.1

  • copy the Rune Shard symbols to the clipboard by shift+clicking the shard in the inventory.
  • the symbols can then be pasted into any text field such as a sign text or the chat or even outside the game.

v0.5.0

  • add configs to restrict portal travlel if the portal does not have walls or a roof.
  • defaults require walls (but not roof) for wooden portals, no requirement for stone portals.

v0.4.1

  • code cleanup, no functional changes.
  • recompile for Zen.ModLib v1.8.7

v0.4.0

  • add config to require portals to be supported with heavy mats. disabled by default for wood portals so that existing worlds don't have wooden portals collapse, but strongly recommended to turn on for new worlds, or if you are sure your wooden portals are placed on stone.
  • changed default to allow building wood portals in the swamp abobve 45m. But it's highly suggested to turn require heavy build mats ON for wood portals so that the towers in swamp must be built from stone, not wood.
  • moved some config options around to make more sense. Double check your configs.
  • portal sickness Puke On Eat default changed to false.

v0.3.3

  • fix teleport visuals displaying even when no valid teleport.

v0.3.2

  • split restrict portal to known biomes only into 2 configs, one for wooden portals and the other for stone portals.
  • moved zen_forgetbiome to ZenPlayer v0.8.10 and patched ZenPlayer to make biome discovery strict.

v0.3.1

  • add config: restrict portal travel to known biomes only. enabled by default.
  • add admin console command: zen_forgetbiome

v0.3.0

  • add config option: can now restrict portals by biome by portal type: Wood and Stone separate.
  • Stone portals are now allowed in Mountains and Ashlands by default, Ashlands allows construction over above 80m.
  • this changed the config names for "Allow Biomes", check your conigs if you changed the defaults.

v0.2.5

  • fix issue with portal sickness not puking food after eating.

v0.2.4

  • fix nullref error that could happen if you logged out with portal sickness and then logged back in.

v0.2.3

  • small fix to prevent eating invalid data on rune shards.

v0.2.2

  • fix issue: not correctly displaying admin info with ZenUI
  • reduced rift drifts from 3 hops to 2.
  • narrow drift targets to shard biome only.

v0.2.1

  • updated translations and improved messages.
  • cleanup some rough edges on the UI.

v0.2.0

  • FIX: Config values would not sync to the server on prior versions.
  • Reworked the way Rune Shard addresses are generated. Old Runestones will no longer generate the same symbols that they did in prior versions. Existing portals will still work. Existing shards will still work, but visiting old Runestones will show different addresses.
  • Per biome addresses. A unique combo of symbols per biome.
  • Ability to restrict the number of portal addresses per biome. Smaller values makes links rarer and requires venturing into diff biomes.
  • Per player Runeshards are no longer supported, now uses player groups instead. Each player is randomly assigned to a group when they first connect. Admin can change their group via the console. Players in the same group see the same symbols at the same Runestones. Diff groups see diff symbols. See config for more info.
  • config option "Exclusive Allow Teleport Items" moved to ZenWorldSettings.
  • Config option to control if rune shards can be teleported was removed. Can control via ZenWorldSettings instead.
  • Configs have changed a lot, check your configs if you changed the defaults.

v0.1.1

  • extended the Runeshard symbol table. Your existing Runeshards will show diff symbols but any linked portals will still work.
  • amended some translation strings

v0.1.0

  • initial release