Skip to content

New Feature: Portal Networks#138

Open
Vapok wants to merge 15 commits into
SpikeHimself:mainfrom
Vapok:merge/PortalNetworks
Open

New Feature: Portal Networks#138
Vapok wants to merge 15 commits into
SpikeHimself:mainfrom
Vapok:merge/PortalNetworks

Conversation

@Vapok
Copy link
Copy Markdown

@Vapok Vapok commented Apr 4, 2026

Problem To Solve: On densely populated servers, the server list becomes very long. In most cases, players are looking for portals they have put down themselves, but also would like to assign portals to a Global List. Additionally, players still want the option to visit other players portals as well.

Solution:

Introducing Portal Networks

This allows players to select whether they want their Portal on the Global Network, or their Player Network. Additionally, when selecting a destination portal, you can select the destination portal network, which will then filter the list to only those portals in the selected Network, making the list shorter. Alternatively, if a portal is to be shared among the server globally, this allows for the owner to decide to keep it in the Global List. For example, I might build a small house at Haldor. I can name my portal "Vendor - Haldor" and select the Global Portals network, since the idea is that it's a shared area.

Features:

  • Complete backwards compatibility with existing portals from earlier mod version. Puts all portals on the Global Network. Allows owners and/or admins to move their portals to their Player Network, if so desired.
  • Two Networks: Global Network or Player-Specific Network
  • Creator of Portal or Admin can change Portal Network on existing portals.
    • Non-Admins can NOT change the Portal Network of other players portals.

Private Portals

This new feature adds to the Portal Network feature by allowing Portal Creators to set a portal as Private. Private portals can only be accessed by their creator. Portal settings on Private portals can be adjusted by the creator or admins, but admins are also restricted from going through private destinations.

  • Adds a Attribute on the Portal to denote it as a Private Portal
  • Private Portals show up under the "My Private Portals"
  • Portals have the option to be built defaulting to Private Portal on build. This is controlled via a BepInEx config setting called DefaultPrivatePortal, which is true by default.

Custom Portal Networks

  • Provides a server-side configuration file for creating up to 15 global networks with a custom network name.
  • Default networks include "Bosses" and "Vendors", but can be changed. Server detects config changes without the need of server restart.
  • Custom Portal Networks are Server-Authoritative when clients are connected.
image

Vapok added 2 commits April 4, 2026 05:02
Problem To Solve: On densely populated servers, the server list becomes very long.  In most cases, players are looking for portals they have put down themselves, but also would like to assign portals to a Global List. Additionally, players still want the option to visit other players portals as well.

Solution:
Introducing Portal Networks.  This allows players to select whether they want their Portal on the Global Network, or their Player Network. Additionally, when selecting a destination portal, you can select the destination portal network, which will then filter the list to only those portals in the selected Network, making the list shorter. Alternatively, if a portal is to be shared among the server globally, this allows for the owner to decide to keep it in the Global List.  For example, I might build a small house at Haldor. I can name my portal "Vendor - Haldor" and select the Global Portals network, since the idea is that it's a shared area.

Note: Assigning a portal to a Player Network does not hide it from other players. However, that could be a future feature configuration-based option to hide player portal networks from other players.

Features:
- Complete backwards compatibility with existing portals from earlier mod version. Puts all portals on the Global Network. Allows owners and/or admins to move their portals to their Player Network, if so desired.
- Two Networks: Global Network or Player-Specific Network
- Creator of Portal or Admin can change Portal Network on existing portals.
    - Non-Admins can NOT change the Portal Network
This new feature adds to the Portal Network feature by allowing Portal Creators to set a portal as Private. Private portals can only be accessed by their creator.  Portal settings on Private portals can be adjusted by the creator or admins, but admins are also restricted from going through private destinations.

-- Adds a Attribute on the Portal to denote it as a Private Portal
-- Private Portals show up under the "My Private Portals"
@Vapok
Copy link
Copy Markdown
Author

Vapok commented Apr 4, 2026

After looking at the Issues list, there's a large call for private portals, and I got that functionality halfway there with Portal Networks. So I've added Private Portals to this merge request:

Private Portals

This new feature adds to the Portal Network feature by allowing Portal Creators to set a portal as Private. Private portals can only be accessed by their creator. Portal settings on Private portals can be adjusted by the creator or admins, but admins are also restricted from going through private destinations.

  • Adds a Attribute on the Portal to denote it as a Private Portal
  • Private Portals show up under the "My Private Portals"
  • Default Portals can not be made private.

@Vapok
Copy link
Copy Markdown
Author

Vapok commented Apr 6, 2026

Added an additional Feature:

New Feature: Custom Portal Networks

  • Provides a server-side configuration file for creating up to 15 global networks with a custom network name.
  • Default networks include "Bosses" and "Vendors", but can be changed. Server detects config changes without the need of server restart.
  • Custom Portal Networks are Server-Authoritative when clients are connected.
  • Portals have the option to now be built defaulting to Private Portal on build. This is controlled via a BepInEx config setting called DefaultPrivatePortal, which is true by default.

@Vapok Vapok force-pushed the merge/PortalNetworks branch from c56ff3c to a99a14f Compare April 6, 2026 00:46
Vapok added 3 commits April 5, 2026 20:46
- Provides a server-side configuration file for creating up to 15 global networks with a custom network name.
- Default networks include "Bosses" and "Vendors", but can be changed. Server detects config changes without the need of  server restart.
- Custom Portal Networks are Server-Authoritative when clients are connected.
- Portals have the option to now be built defaulting to Private Portal on build. This is controlled via a BepInEx config setting called DefaultPrivatePortal, which is true by default.
This fixes issues identified in Bug Issue SpikeHimself#136.

- Sets Font for gamepad hints to show.
- Adds functionality to sync scrollview with position of list. Unity does not make this easy. You'd think it would be.
- Syncs Joystick and DPad interactions with drop down list.
- Increased Mouse Wheel interaction. Makes the mouse wheel scroll through the list faster.
- Extends Gamepad Hints to Network fields
- Toggles the visibility of the up/down keyhint to active drop down.
Vapok added 3 commits April 6, 2026 18:07
- Provides a server config enabled option to prevent portals from being destroyed by other players.
- Only creator of portal or admins on server can destroy a portal.
- Regression on mouse clicking wrong item in drop down.
- Regression in network name. Fixed.
Fixed: Added appropriate keyhints to the translations, and properly formatted the input.
@Vapok
Copy link
Copy Markdown
Author

Vapok commented Apr 6, 2026

@SpikeHimself - I have gone through all of the open issues and identified bugs and enhancements that I feel comfortable making and have included them in this pull request. Unless I find bugs in the code i've modified as my testing group tests these changes, I don't forsee any more updates to the Pull Request.

Hopefully this helps. I know your time is limited.

@Vapok
Copy link
Copy Markdown
Author

Vapok commented Apr 11, 2026

@SpikeHimself - I know I kind of dropped this on you. If I have overwhelmed you, sorry about that. Just wanted to help.

Feel free to reach out to me directly if you'd like to chat about it. You can find me on Discord at vapok_ or email me at vapokrocks at gmail.

Happy to help out if you were needing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant