UE5 Experience System
This page is part of the documentaiton for my UE5 Experience System

Multiplayer Notes

UE5 Experience System Version: 1.0

    This system is replicated for you, however there are a few things you should still be aware of.

    Player Identification Process

    Open the AC_ExperienceSystem event graph and navigate to the “Get our Unique ID (for multiplayer)” section of the event graph. As you can see we are setting a string called MyID on the server then sending it to the client. The value of MyID by default is the index of the player state in the player array found on the game state.

    I DO NOT RECOMMENDED USING THIS METHOD "AS IS" FOR MULTIPLAYER GAMES WHERE THE EXPERIENCE NEEDS TO PERSIST THROUGH SERVER AND CLIENT RESTARTS. IF THIS APPLIES TO YOU THEN YOU SHOULD MOST LIKELY ALREADY HAVE A WAY TO IDENTIFY YOUR USERS. THIS UNIQUE VALUE IS WHAT YOU WILL WANT TO USE FOR THE "MY ID" SET IN THIS EVENT. THIS ID IS USED TO IDENTIFY THE SAVE GAME.

    Sharing Experience

    This experience system provides support for sharing experience in full or part in your multiplayer game. The AddExperienceShared event on the AC_ExperienceSystem component is the one you want to use to share experience with other players. Review the Add Experience chapter of this documentation to learn how to use this event.

    PVP Experience Points

    I have included a simple example of PVP based experience, take a look at the demo world BP_ExamplePlayerCharacter found in the Demo/ folder. The event will show you how experience is only awarded to the attacker when hitting another player’s character.

    Experience Multipliers

    Experience Multipliers are unique to the player in multiplayer, for example one player could be playing at 1x while another is playing at 5x, 10x or 100x if you wanted. Perfect for consumables, special zones, or special perks.

    Blocked Areas

    The blocked areas system also supports multiplayer however for it to work you have to enable the isMultiplayer? [bool] from the details panel of the AC_BlockedAreas component on your player controller. Review the Blocked Areas chapter of this documentation to learn more about this variable and why it is required.

    Seamless Travel

    If you are using the default player identification process in your multiplayer game (which I do not recommend) and your game requires the players to move across multiple levels then you will want to utilize seamless travel to persist your player controller. With it the experience will stay linked to the correct player.

    If you are using a more advanced way to identify your players (which I recommend) you don’t have to worry about this as that data should already persist across levels for you.

    To learn more about seamless travel see this page of the Unreal documentation: Travelling in Multiplayer