[Completed]Network Things (Lobby, CharSelect, Scoreboard, Groups) done with BP and UMG | Marketplace


Hey party people,

my name is Cedric ‘eXi’ and maybe you already know me from here, the HUB, youtube or twitch.

The last few weeks i was working on a project that combines some of the “basic” multiplayer things, only done
in Blueprints. My first little goal was to create a lobby, but now i have added a lot more features

The project works modular most of the time. So you are able to strip of the Lobby, Chararacter Select
or Group System for your own project. They might share a few variables in the GameInstance or so.

To get you started, i will comment every little bit of my code as exactly as i can. So better prepare to read a lot! (:

I’m working very structured and i am using A LOT of reroute notes, so that you can clearly see where
wires are going (sometimes they need to cross, but that’s still good to see at these points).


I also added short tutorial blueprints for the main classes (GameInstance, GameState, PlayerControler, etc.) which tell
you what they are used for and how you can use them for your Multiplayer Project.


What features do exist for this project?

TL;DR: Here is a video showing some of the features:

The Main Menu, composed of:

> Options Menu, where you can set your Username
> A host menu, where you should chose a ServerName, the Amount of Players and also a GameMode (DM, TDM or Group and Chat Showcase)
> A ServerList, which you can refresh etc.






The Lobby, composed of:

> A list of the connected Players, either with 2 Teams, or all in one list
> A second list, where each Player can chose one of 4 Characters (only differ in color for showing)
> A Ready Button for every Player, so that the Game can only be started when everyone is ready
> A Kick Button for the Players, only visible for the Listen Host
> A Start Button, only visible for the Listen Host
> A Switch Team button, to switch your Team in Team Deathmatch




A temporary Loading Screen!


The Scoreboard:

> Showing the PlayerNames, the Score, the Ping and in TDM the Teams and overall Team Score




A Test Map for Deathmatch and Team Deathmatch:

> It has Spawnpoints (so a SpawnSystem) and a RespawnSystem for falling down the Map or Restarting the Round
> You can collect small floating objects and if you reach the Winning Score (default = 5) you or your team wins the round
> The Server can restart the Game if he wants


> Also a map for the GroupInvite and ChatSystem but without the objectives!


The Group System:

> You can look into a list of Players when opening your Ingame Menu
> If you click on a Player Name, the Player will receive an Invite
> If the Player accepts the Invite, the inviting person will be the GroupLeader and can invite more people
> The GroupLeader is marked with an orange Name
> You can leave the Group with the PlayerList as well
> You can invite and leave Groups per Chat




The Chat System:

> You can write in the AllChat, a Group Chat (combined with the Group System) and whisper
> You can also perform /commands, like /playerlist, /invite PLAYERNAMER, etc.



What will the Pack cost and when will you release it?

I am submitting the project “now” to Epic Games and will see how long it takes to get into trello
and beyond.

Since the project cost me much more time and i put in way more features than planned, it will cost 49,99$.

It took me several days/weeks where i worked about 6-10 hours straight to finish this, so i guess the price is ok.


So i hope this is something cool for you and you would love to see this on the Marketplace.

I will post the trello link once my submission is through.

Nice work again Exi, how difficult is steam integration for those of us wanting to publish on steam just a random thought to see if this is compatible. Also the price point is very reasonable I actually think it is low for the amount of features you are providing.

Since steam is handled through the OnlineSubsystem Wrapper functions, it should just work out of the box.

The session nodes will take care auf everthing and the rest is not steam related. And you could use the PlayerName from the PlayerState instead of your own variable to have the Steam name.

I will check that ones its finished.

Hey there,

small update. I went ahead and splitted the Levels. There is now one Level for “Deathmatch”, one for “Team Deathmatch” and one for showing the Chat and Group Invites.

I reworked the Lobby to only show the Team List and Switch Team button when we are in Team Deathmatch and added a Combobox to choose the GameType from.

Right now, you can’t change the GameMode easily via Blueprints, so i needed to duplicate the Level and to give it a different GameMode. You could change the GameMode with
the “OpenLevel” options, but since i am using Server Travel for the Lobby, it doesn’t work ):

I also splitted most of the Classes into a BaseClass and 2 classes, one for Deathmatch and one for TeamDeathmatch. They aren’t doing much, but handeling the difference in each
GameType. For example the Scoreboard has 2 Columns and the GameState gets the TeamArrays or only the PlayerArray.

The 2 Maps won’t contain a real shooting Deathmatch Game. I will just create a small jumping parcou with collectable Coins, so that we have a little Goal and maybe a Winning Screen
with a restart button (Needs to be implemented).

I did a lot today, so i’m not quite sure if everything is correctly working. I will have a look at it tomorrow.




So i’m currently working on the GamePlay example part of the project. The “Deathmatch” part where you collect yellow rings
and try to get a certain score before someone else does. The “Teamdeathmatch” part will be the same, but with a teamscore (like you see
in the screen in my last post). Last two days i added small spawn points for all 4 players and a respawn system for falling down the map
or restarting the game:


Also i added the start of a small jump parcour map with the yellow rings you need to collect. Nothing too fancy, it is just an example:


I also added the complete logic behind the winning screen. Each player will see the Name of the victorious player and the host can also chose
to close the game or restart it. If he restarts it, all players will be spawned back to their spawn points and the yellow rings will be spawned back.
Also the score will be reseted:



There are still a lot of small things i need to add and a major “bug” in the lobby that somehow came up after i added the old “all players” list to the
TeamLists. I guess i just mixed something up there.

Will keep you updated with all “major” updates. I hope i can finish this soon. Very time consuming!

Hey, no new screenshots, but i reworked a lot of things and fixed all current bugs (at least the ones i noticed).

Things that are kind of done:

  • The MainMenu and all the underlying widgets
  • The Lobby und all classes for the lobby
  • Deathmatch and Teamdeathmatch GameLogic, Map and Widgets
  • Reworked most of the Blueprints again
  • Structured the Nodes and started commenting on everything
  • Coloring the Blueprints to easier see what belongs together
  • And some other reworks for better understanding

Next in the list is the Map for the GroupInvite and Chat. The GroupInvite is already down, i just need to move it over to the new
classes and maybe see if i can rework this too. The chat needs to be done from scratch by now.

But if this is finished, i guess i can move this huge pack to the Marketplace Subforum and give you a video on what you will get here.

Hey party people,

i finished the GroupInvite System with joining and Leaving a Group. Though this is not a group where someone
is a Leader. But in the overall project you will see and learn how you could add this feature if you wanted.

Next and last thing will be the Chat. Then i will move on to submit this to Epic.

(Random numbers for Health and Mana so that we have something to show)


Hey party people,

today i reworked the GroupSystem and made it way easier and more straight forward. Although i have a bug with
the Server not correctly running a RepNotify. Maybe i need to work around this. I also nearly completely finished the ChatSystem.

You can write in All/Group/Whisper and run commands like “/playerlist” or “/changename eXi” (so with and without a text behind the command).

You can also invite player directly into your group with “/invite Playername”. I tried to split this as much as possible, so that you don’t need to
use the chat and the group system together.

The GroupSystem was also reworked in its base features. You now have a leader and the group is updated to be the same for all players.
You will get Chat notifications if you try to invite a player who is already in a group and so on. You can also leave a group via chat and
the Group channel is connected to the active group (giving “You are not in an group!” if you don’t have a group).

There are some things i need to debug and polish, but for now i have all features implemented and when i got rid of the bugs and reworked
the comments of the chat/group system, i will post a video and submit this to Epic/Market.

Please drop critiques and comments below!


Dude, I think this is worth more than 20€… :smiley: Looks really nice! :slight_smile:

Ha, yeah i’m kinda thinking the same. But i will think about the price when release comes up.
When talking about the price, i wasn’t sure how much time it will cost me (+ i created lots of new features
that weren’t planned). So, the final price will be higher, but i have no idea how much. We will see.

(: Thank you!

I personally would like to buy what you have now and pay for the rest later. I would make good use of a product like this. You ought to make completing this blueprint a priority!

Also may I suggest you add a video documentation for your product? I will more than likely alter a lot of the blueprint as it is my plan to make a more “massive” game using this and a few other blueprints on my system.

Hey, na i will want to finish it first before selling. The project is well commented and i am currently (again) reworking the chat, so that you can easily see where you can change things.
I will also add tutorial blueprints which will explain a lot. Currently i’m not planning on releasing a complete video as documentation.

No problem bro! I see you value your work!

Just so i can show off some Blueprints. This is the insight of the Chat Widget. This will handle checking if the message is a command like “/playerlist”, “/whisper” oder “/invite PlayerName”.
It is broken down into a few Macros, so you can easily see what i’m checking and doing in the specific node and part.


The rest of the logic, so what the Server does to send the message around, is located in the Controller:


All clean and straight forward i hope :smiley: The comments are not reworked yet.

Theres another tutorial I was looking at that is similar to your set up (just not as flashy). It allows players to move the party to another lobby and possibly another level in the game. I’ll try to find the link.

Edit found: Elliot Yun - YouTube

Dunno if it looks too interesting or not

Hey, yes this is the basic ServerTravel setup (: I’m using this too, but this is only the small tiny bit that you get in this project.

Once i posted the features video, you will see what i mean!

Happy to say, i finished the last system (Chat/Group) and now only need to have a look at some minor things i want to set
and rework the comments. So it is highly possible that i will make a video tomorrow!

Have a good night party people (:

Hey party people,

here is the Video showing the Features of this pack. I’m finally ready! (:

I will update the first post as soon as possible. Feel free to drop comments!

(1080p will be available soon. It’s still converting)

Looks pretty epic! Its like the meat of multiplayer games in a single project. Good job so far!

Love to see this hit the marketplace. I guess 50 is a fair price viewing your feature list. You got one customer here!