LogoLogo
API Status
  • ๐Ÿ‘‹Welcome
  • ๐ŸŒWhat is Morpheus Platform?
    • Interoperability
  • โ„น๏ธHelp
    • ๐Ÿ“—Glossary
    • ๐Ÿ†˜Support
    • Firewall problems
    • EULA
  • CREATION
    • ๐ŸŽฎUnreal Development
      • โšกGet Started
        • โš’๏ธDownload the Editor
        • โซUpload Content
        • ๐ŸŒŽCreating your own map
        • ๐Ÿ“Morpheus Base Project
        • โ“Differences from Unreal
          • ๐ŸงCharacter Configuration
        • ๐Ÿ“กMorpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • ๐Ÿ“šFeatures & Guides
        • ๐Ÿ“’Example Plugin
          • Nameplates
          • In-game roles
          • Resizing
        • ๐ŸŠActor Pooling
        • ๐Ÿ”ŠAudio
        • ๐ŸŽญAvatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT collection
          • Capsules and Mesh Transforms
        • ๐Ÿค–Bots
        • ๐ŸŽ™๏ธChat
          • Unreal Text Chat
        • ๐ŸŽ›๏ธControl Panels
          • Control Panel Configuration
          • DJ booth mission control
          • Observer Controls
        • ๐Ÿ”‰Crowd Audio
        • ๐ŸคผCrowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • ๐ŸฑHelpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics settings
          • Listening to inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • ๐Ÿ–ฅ๏ธLoading Screen
        • โšกLive Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • ๐ŸงŠMML
        • ๐Ÿ•บMotion Capture
        • ๐Ÿ“กNetworking
        • ๐Ÿ“ขNotifications
        • Raycastable Crowd
        • ๐ŸŒSingletons
        • ๐Ÿ“ฑStreaming & Multiplatform
          • GFN on mobile
        • ๐Ÿ–ฅ๏ธUI
          • "UI Mode"
        • ๐Ÿ—ƒ๏ธUser Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • ๐Ÿ“บVideo Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • ๐ŸžVisual Debugging
          • Inspector
        • ๐ŸชŸWeb UI
        • Online Services
          • KV Store Service
        • ๐Ÿ’ Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • โœˆ๏ธWorld Travel
          • World Travel in the editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • ๐Ÿ”‘Workflows
        • โ†—๏ธUpgrade the Editor
          • ๐Ÿ–ฅ๏ธVersion History
        • โš™๏ธEditing Project Settings
        • ๐Ÿ“ˆProfiling
        • ๐ŸงบMarketplace Importing
        • ๐Ÿ› ๏ธExtra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • ๐Ÿ“šUseful Reading
        • โญBest Practices
    • ๐ŸŒŽWorlds
      • ๐Ÿ“ฉInvite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • ๐Ÿ“…Running events
      • โœ…Large scale events - Checklist
      • ๐Ÿ‘พAnti-Cheat (EAC)
      • ๐ŸŽฎPlayer Entry
        • ๐Ÿ“ฑReact Native
        • Steam
        • ๐Ÿ’ปHardware Reqs
      • ๐ŸŽฅBroadcast
        • ๐Ÿ“นOBS Integration
      • Failover
      • ๐ŸCapacity And Queue Management
  • ADMINS
    • ๐Ÿ‘ชAccess Control
      • Adding metaverse contributors
      • Creating a new project
    • ๐Ÿ’ฒPricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • โš™๏ธSettings
      • ๐Ÿ—ƒ๏ธProjects
  • APIs and Tooling
    • ๐Ÿ–ฅ๏ธAPI Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • ๐Ÿ’ปTemplate Web App
      • ๐Ÿ’ขModeration
    • Pixel Streaming
    • ๐Ÿš€Launcher
  • Integrations
    • ๐Ÿ“ŠAnalytics
      • Sending events from web
      • ๐ŸŽฎSending Events from Unreal
    • ๐Ÿ’ฌChat
      • ๐ŸŽฎIntegrating Pubnub with your Unreal Project
      • Adding Moderation to Chat
Powered by GitBook
On this page
  • Introduction
  • Enabling World Travelโ€™s Editor Mode
  • Do I need to revert this later?
  • Setting a World Id
  • Set Up Some Extra Servers
  • Finding the Settings
  • Adding Extra Server Processes
  • Choosing the Extra Server Settings
  • Choosing the Port Numbers
  • Help! I Need to Choose Other Port Numbers
  • Hit Play!
  • Cheats for World Travelling
  • Extra Options
  • Troubleshooting & Known Issues
  • Help! My Servers Arenโ€™t Starting

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Features & Guides
  4. World Travel

World Travel in the editor

PreviousWorld TravelNextAvatar Physics Assets

Last updated 1 day ago

Was this helpful?

Introduction

World travel is now available to test in the editor. It uses a Morpheus plugin called MorpheusMultiServer, which allows you to specify and start multiple servers locally; most of the setup is to get these extra servers working, and then you can travel between them using portals or gates in your game world in the same way you would in a cloud deployment.

A lot of the below stuff is going to look scary, but itโ€™s not that bad once you get used to it.

We do plan to remove some of the extra setup requirements in the longer-term (e.g. the Launch Settings section) but unfortunately due to time restrictions on development, at the moment there are a few extra steps.

Enabling World Travelโ€™s Editor Mode

Firstly, a nice simple one: go to your Editor Preferences, search for โ€œWorld Travelโ€ and enable Use Editor Mode for World Travel.

Do I need to revert this later?

It depends, but in general no - itโ€™s fine to keep this option enabled all the time. If youโ€™re testing elements of the web service flow for world travel (eg. sending an Http request for available worlds) then youโ€™ll want to make sure itโ€™s disabled for that, as this option overrides that request. Incidentally, thatโ€™s why this option defaults to false - to preserve existing workflows for other people.

Setting a World Id

A client/server requires a WorldId to run correctly. In PIE, it can largely proceed without it, but in a launched process, it will exit out. Therefore, if the WorldId is not configured correctly, the launched extra server processes will fail, giving a fatal log and closing.

To resolve this, there are two options:

  1. (The preferred approach): In Editor Preferences - General - Sign In Settings, set Use Local World for PIE to true. This will generate a local WorldId for you.

  2. In your Config/DefaultM2Services.ini file, add a WorldId to your [/Script/M2ServicesCore.M2_DomainSettings] section. You can enter a bogus value here, and it will unblock proceedings.

Set Up Some Extra Servers

Finding the Settings

To start out, go to Editor Preferences and select Morpheus Multi Server Settings. You should see the following screen:

This is where youโ€™ll configure your extra servers. Youโ€™ll need one server for each extra map - for example, if youโ€™ve got maps A and B and youโ€™re starting PIE from map A, just set up a server for map B.

Adding Extra Server Processes

So, for each extra server you want, add an element to Extra Server Processes to Create.

Choosing the Extra Server Settings

Thereโ€™s a bunch of numbers and options there. What do they mean? Letโ€™s cover the simple ones first:

  • For Deployment Map, choose the level that server should be running.

  • For Deployment Name, what you put doesnโ€™t really matter as long as itโ€™s unique - but we recommend something human-readable.

  • If you need to pass command line arguments to a specific server, type them in the Additional Command Line Arguments box! In the majority of situations you can leave this blank.

Next up, thereโ€™s a bunch of port options. Whatโ€™s up with those?

Choosing the Port Numbers

A very non-technical explanation of a port is that you can think of it as being like a USB slot on your laptop or PC, except it holds a program instead of your mouse or keyboard or headset. If a port already has a program using it then other programs canโ€™t use that port as well.

So, how do you fill out the port numbers in a way that doesnโ€™t conflict with other programs? Hereโ€™s a good strategy:

  • For Server Port, use 7778 for the first extra server and add one for each extra new server;

  • For Deployment Redis Port, use 6380 for the first extra server and add one for each extra new server;

  • For Deployment Proxy Port, use 9001 for the first extra server and add one for each extra new server.

Why does this work?

If youโ€™re curious - the default server port for our PIE sessions is 7777. Similarly, for the redis port itโ€™s 6379 and for the proxy port itโ€™s 9000. Adding one for each new server will generally ensure you get an unused value.

Help! I Need to Choose Other Port Numbers

In rare situations, the above strategy might not work. If it fails, you should get an error somewhere that reads Skipping creation of <deployment name> because the <name> port specified for it is occupied.

Here are some rules of thumb for situations where you have to guess at port numbers:

Rules of thumb for choosing port numbers if the above doesn't work

  • Choose Unique Numbers: In short, donโ€™t reuse the same port twice on this settings page.

  • Choose High 4-digit Numbers: Generally, if you choose a high 4-digit number, you should be fine.

Hit Play!

Yay! You should see at least one extra window open up - these are the standalone servers running each extra map.

You should be able to world travel between them as you would normally - see World Travel.

Cheats for World Travelling

WorldTravel.TravelToDeployment [DeploymentName] - Travels to input deployment. Uses partial matching.

WorldTravel.TravelToMap [MapName] - Travels to input map. Uses partial matching.

WorldTravel.List - Prints list of available worlds to travel to.

Extra Options

There are two extra options in the Multi Server settings which are extremely useful and worth understanding:

  • Should Create Extra Servers on PIE Start: defaults to true. When set to false, the extra servers youโ€™ve specified will not be created. This is extremely useful if you want to go back to normal non-world travel testing but want to retain your extra server setup for later.

  • Should Destroy Extra Servers on PIE Finish: defaults to true. When set to false, the extra servers created when you hit Play will not be destroyed when you hit Stop. This is useful if you want to retain state on a server between tests, or to speed up schema generation (see Known Issues).

Two important notes on the above

  • If you have extra servers still running from a previous PIE session, they wonโ€™t be recreated regardless of your choices. Youโ€™ll have to close them manually if you decide later on you donโ€™t want them.

  • The server on which you start your PIE session will always shut down when you hit Stop, regardless of your editor preferences. There's no workaround for this currently, but can be investigated if it becomes a necessity.

Troubleshooting & Known Issues

Help! My Servers Arenโ€™t Starting

If youโ€™ve definitely followed the above guide to the letter, the most common cause of this is that your port numbers are already taken. Check your logs (both server and client) for the following message:

Skipping creation of <deployment name> because the <name> port specified for it is occupied

where the angle brackets are replaced by a specific deployment name/port type. If you find this message, the solution is to change the relevant port number until you find one that works - it shouldnโ€™t take long.

๐ŸŽฎ
๐Ÿ“š
โœˆ๏ธ
Make sure to enable โ€œUse Editor Mode for World Travelโ€!
The MorpheusMultiServer settings - example array element added for screenshot
The mysterious โ€œportsโ€ options for each server