Community Project | Cardinal Menu System Instructions, Help, and Discussion

About:

Here is the game menu from our game, Cardinal Fall, for use by the community.
This project packages a combination of other community projects to create a single, easy to implement menu system.
We will do our best to update the project with new engine releases.

License:

This Menu System is free to use under The MIT License. https://mit-license.org
3rd Party Assets are discussed in the credits section below.
More up to date information is available in the Readme.

Download:

Repository:

Credits:

Cardinal Menu:
This project was put together by Metahusk using a collection of community content. Please credit everyone listed here and provide a link to our websites.
(http://metahusk.com)

Project Blueprints:
This project’s blueprint files are released under the Creative Commons Attribution 4.0 International License. CC BY 4.0
Please provide credit where credit is due. You must credit the following people listed below. You can find this information in the project’s readme.
(https://creativecommons.org/licenses/by/4.0/)

Background Music by The Tune Peddler:
The music used in this project is owned by The Tune Peddler. You do not have permission to use the project’s music without agreeing to the terms at The Tune Peddler’s website. As of July 2016, this includes a $5 a month subscription fee.
(http://thetunepeddler.com/)

How To Help:

Respond to this thread below with your ideas.
If you have a bug fix, would like to contribute, or expand on this project, please say so.
We will contact you and grant you commit privileges on the repository.

How To Donate:

Our organization is a IRS 501(c)(3) recognized tax exempt nonprofit.
We will provide written (emailed) donor acknowledgment letters to those who donate $250 or more to our organization as required by the IRS. Our apologies to donors outside of the United States. We will not be able to provide you with any tax benefits for donating to our organization.

Donation acknowledgment letters will include

The corporate name and EIN of our organization
The name of the donor as it appears on PayPal
The date and ammount of the contribution
A statement that our organization is a valid 501(c)(3) organization
An affirmation that no goods or services were provided to the donor
And information about how your donation was used

Open \CardinalMenu\Source\CardinalMenu\CardinalMenu.Build.cs and paste the PublicDependencyModuleNames and PrivateDependencyModuleNames into your \Your_Directory\Source\YourProject\YourProject.Build.cs like so:

Navigate to the MainMenu Blueprints folder at \Cardinal\MainMenu\Blueprints

Insert your GameModes into Enum_GameModes, list your available map names to Enum_Maps, and set your server host's preferred maximum number of players to Enum_NumberOfPlayers using the supplied pattern. For skipped number of player options, use the enumeration's integer. For the number of players option you'd like available, spell out the integer. For example: 0, 1, Three will leave a server with a maximum of "Three Players." (Please note the game modes and player limits are not implemented in the actual project. This is up to the end user to implement.)

Enjoy NOTE: To utilize Steam, you must launch as a "Standalone Game" or utilize a packaged build both with Steam running.

Modifying Starting Map or Number of Players

Navigate to the MainMenu Blueprints folder at \Cardinal\MainMenu\Blueprints

Insert your GameModes into Enum_GameModes, list your available map names to Enum_Maps, and set your server host's preferred maximum number of players to Enum_NumberOfPlayers using the supplied pattern.
For skipped number of player options, use the enumeration's integer. For the number of players option you'd like available, spell out the integer.
For example: 0, 1, Three will make a server with a maximum of "Three Players." (Please note the game modes and player limits are not implemented in the actual project. This is up to the end user to implement.)

Deploying Packaged Builds

In order for key bindings to work on packaged builds, you must copy Input.ini from inside your project to the build directory.
The paths and default bindings are listed below. Input.ini does not copy into the directory by itself. The default bindings are shown below for your convenience.

Open the PlayGameSubMenu widget located here:
/Cardinal/MainMenu/Blueprints/UI/Submenus/PlayGameSubMenu.PlayGameSubMenu'

To change the names of the buttons:
Open the Designer tab on the Widget and then navigate to SettingsButtonsLine in the Hierarchy.
In the Details tab and in the Default section and then under ButtonsNames you will see an array of the names.
Change these names to change the button names.

To change the functions of the buttons:
Open the Graph tab in the widget.
Open the function called OpenDetailsContainer.
There you will see a SwitchonInt that controls each button in order from 0 to 4. This is where the button's actions are performed in order of their name listed in the array. (Like OpenMap and so on)

To remove the Local Split Screen Button:
Remove the button name in the array (Array item 1)
Then move the pins from switch on int to adjust for the order change. (So 2 now goes to 1, 3 to 2, and 4 to 3)

Bug: Player input control mappings are not in the correct orderFix: The engine re-orders inputs, change them to alphabetical order in your DefaultInput.ini

Bug: Packaged game builds lose default control bindingsFix: Packaging does not copy Input.ini by itself. See "Deploying Packaged Builds" above

Bug: Cannot host a session after importing project filesFix: Make sure BP_GameInstance is set in your game mode

Bug: Joining players in PIE spawn as spectators and not pawnsFix: Make sure Auto Connect To Servers is not checked under Play -> Advanced Settings -> Multiplayer options

Bug: Some listen servers do not respond to ping, instead respond with "?"Fix: Listen server host's network configuration (firewall or router) do not respond to ICMP Pings, likely due to host's configuration. To show pings, host's router must respond to ICMP Pings. Many routers have this disabled by default.

The logic for the total players has to be put into game state and the Steam session has to be updated. We haven't included that logic as of yet. (Just like level transitions and so on) Basically the online session gets broadcasted once when you create the server and the gamestate never updates it.

It's not too hard to implement. You just need to count the number of players in your game and update the online session to reflect this every time someone joins and leaves the game.

We are working on a game right now. When I implement that into our game I will copy the BP nodes into the Cardinal Menu project and share it. It just hasn't been built yet.

Thanks Thaddeus, appreciate the explanation. I've been working on my own game myself and tried getting the current players in a server just by dragging a "Get Current Players" function off the find sessions advanced results which works for LAN but always returns as 1 for some reason with Steam. I'll have to try updating it manually like you described above.

Thanks Thaddeus, appreciate the explanation. I've been working on my own game myself and tried getting the current players in a server just by dragging a "Get Current Players" function off the find sessions advanced results which works for LAN but always returns as 1 for some reason with Steam. I'll have to try updating it manually like you described above.

We just tested 4.13 and the persistent graphics settings need to be reworked. We will probably migrate away from the MainMenuLib plugin. The update may take a while. So far no other bugs have been discovered outside of minor depreciated blueprint functions.

We released the project for 4.13 today. I'm not quite sure if the graphics settings will cause issues but so far I've experienced no issues. We will probably slate that fix for the next engine version. Please report any bugs you find.

Great work! I have been playing around it and works quite well! Out of curiosity, have you gotten this to work for a dedicated server? While i have gotten dedicated servers working in other scenarios ( Null OSS) can't seem to get one to work with Steam.

Great work! I have been playing around it and works quite well! Out of curiosity, have you gotten this to work for a dedicated server? While i have gotten dedicated servers working in other scenarios ( Null OSS) can't seem to get one to work with Steam.

The UE4.15 release includes some major changes. Here are some of the major ones.

The MainMenuLib was removed and blueprints only graphics settings were put into place using Mathew Wadstein's method.
Axis bindings are now possible.
Controllers (Xbox and Steam) are now supported.
And a UE4 intro video plays at the beginning.

I'm releasing axis mapping and controller support today with the UE4.15 release! It took a while to work the bugs out.

Wow! that's awesome work, never would have thought it so fast!
Thank you

You're welcome. Hopefully this saves people a lot of time. Binding can be kind of difficult. The inputs require alphabetical order and sometimes after packaging the game you have to re-order the defaultinput.ini controls back into alphabetical order. The menu system is getting pretty complicated. I forget where things are if I haven't worked with it in a few months.

The input widgets can be found here -
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/ControlsSettingsDetails
In the arrays DefaultActionBinds_"control-scheme"
and
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/RAMA-AxisControls/AxisMain_ByRama
In the arrays DefaultAxisBinds_"control-scheme"

You're welcome. Hopefully this saves people a lot of time. Binding can be kind of difficult. The inputs require alphabetical order and sometimes after packaging the game you have to re-order the defaultinput.ini controls back into alphabetical order. The menu system is getting pretty complicated. I forget where things are if I haven't worked with it in a few months.
The input widgets can be found here -
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/ControlsSettingsDetails
In the arrays DefaultActionBinds_"control-scheme"
and
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/RAMA-AxisControls/AxisMain_ByRama
In the arrays DefaultAxisBinds_"control-scheme"
The default inputs are in:
\game\Config\DefaultInput.ini
And input mappings for PC are as follows:
+ActionMappings=(ActionName="Jump",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Menu",Key=M,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+AxisMappings=(AxisName="Backward",Key=S,Scale=-1.000000)
+AxisMappings=(AxisName="Forward",Key=W,Scale=1.000000)
+AxisMappings=(AxisName="LookDown",Key=None,Scale=1.000000)
+AxisMappings=(AxisName="LookUp",Key=MouseY,Scale=-1.000000)
+AxisMappings=(AxisName="TurnLeft",Key=MouseX,Scale=1.000000)
+AxisMappings=(AxisName="TurnRight",Key=None,Scale=-1.000000)
*Note the alphabetical order
I play tested it for a while. I think I fixed most of the bugs. If you see one, please let me know. Thanks

You do not hope. YOU SAVE a lot of time of all people want use your project for prototyping game or something like that. For my mind since i played with ue4 i have seen many community helper giving some tuto you know complete solution to start with and this is very good because when you are indie or even student this type of project i guess "Cardinal Menu" is a gold mine and this can increase significantly your power!
I just want to say something last one for people looking for solide base fundation for starting game or any other. this is a MUST USE in his category.
Peace

You're welcome. Hopefully this saves people a lot of time. Binding can be kind of difficult. The inputs require alphabetical order and sometimes after packaging the game you have to re-order the defaultinput.ini controls back into alphabetical order. The menu system is getting pretty complicated. I forget where things are if I haven't worked with it in a few months.
The input widgets can be found here -
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/ControlsSettingsDetails
In the arrays DefaultActionBinds_"control-scheme"
and
/Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/RAMA-AxisControls/AxisMain_ByRama
In the arrays DefaultAxisBinds_"control-scheme"
The default inputs are in:
\game\Config\DefaultInput.ini
And input mappings for PC are as follows:
+ActionMappings=(ActionName="Jump",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Menu",Key=M,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+AxisMappings=(AxisName="Backward",Key=S,Scale=-1.000000)
+AxisMappings=(AxisName="Forward",Key=W,Scale=1.000000)
+AxisMappings=(AxisName="LookDown",Key=None,Scale=1.000000)
+AxisMappings=(AxisName="LookUp",Key=MouseY,Scale=-1.000000)
+AxisMappings=(AxisName="TurnLeft",Key=MouseX,Scale=1.000000)
+AxisMappings=(AxisName="TurnRight",Key=None,Scale=-1.000000)
*Note the alphabetical order
I play tested it for a while. I think I fixed most of the bugs. If you see one, please let me know. Thanks

You do not hope. YOU SAVE a lot of time of all people want use your project for prototyping game or something like that. For my mind since i played with ue4 i have seen many community helper giving some tuto you know complete solution to start with and this is very good because when you are indie or even student this type of project i guess "Cardinal Menu" is a gold mine and this can increase significantly your power!
I just want to say something last one for people looking for solide base fundation for starting game or any other. this is a MUST USE in his category.
Peace

Hi, I'm triyng to make some test with Cardinal Menu and I found a strange behavior, If you launch 2 PIE windows and on the server windows start a network host and on the client window connect to the server (LAN, no STEAM) the gamemode is not passed to the client and you have olny the default one, just the camera.
Could someone help me with this issue?
thx
Davide

Hi, I'm triyng to make some test with Cardinal Menu and I found a strange behavior, If you launch 2 PIE windows and on the server windows start a network host and on the client window connect to the server (LAN, no STEAM) the gamemode is not passed to the client and you have olny the default one, just the camera.
Could someone help me with this issue?
thx
Davide

Just for reference in case anyone else has the same problem: The issue was resolved in the discord channel. The problem was Auto Connect to Server being checked under PIE -> Advanced Settings -> Multiplayer options.

In SettingsSubMenu, on Open Detail Container, in the comment Change Apply Settings And Defaults Names,
There is a check if InGameMenu existe "Check If In Game Widget - Can't Use Defaults If In Game"
But this check does nothing ?

In SettingsSubMenu, on Open Detail Container, in the comment Change Apply Settings And Defaults Names,
There is a check if InGameMenu existe "Check If In Game Widget - Can't Use Defaults If In Game"
But this check does nothing ?

In SettingsSubMenu, on Open Detail Container, in the comment Change Apply Settings And Defaults Names,
There is a check if InGameMenu existe "Check If In Game Widget - Can't Use Defaults If In Game"
But this check does nothing ?

I would like to know if we can't do something if In Game VS in menu.

Thanks

I'm taking a look. I think it's depreciated. The menu has been in production under a lot of different engine releases. I'll get back to you.

Edit: Ah, that part is confusing and could use a lot of rework. Basically the ending parts of the function OpenDetailsContainer remove or rename the buttons on the bottom of the panels The "Apply - Defaults" button. The names are being changed on runtime or they are being hidden depending on what panel is being selected.

LocalDetailsPanelID "2" is the Controls panel I believe.

There were bugs with setting / rebinding controls while the game was in progress. That part makes sure you go back to the main menu to set the controls back to defaults. If I remember right, it's because of how UE4 sorts control mappings automatically. It took a long time to find a method that worked and "applying defaults" while in game caused problems. (The MainMenu map has no controls really, so you just don't see the problems when you apply defaults.)

We might solve that issue in the future. It's not a huge priority right now, though.

I'm not sure if that made sense? Basically, it makes it so the default controls can only be set in the MainMenu. Running through the array of default controls while the game is in progress has caused problems in testing. If that wasn't your question, let me know.

I pressed set default controls and it deleted all the controls, how can i come back to normal ?

Here are where the controls are stored.

Input.ini and in your configs

The DefaultActionBinds in ControlsSettingsDetails located at /Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/ControlsSettingsDetails

DefaultAxisBinds located in RAMA-AxisControls at /Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/RAMA-AxisControls

The order matters to the engine. It should be alphabetical. To my knowledge, nobody has come up with a better method without programming one or using a form of real time binds on every tick. (Bypassing UE4's method basically) It's a pain to work with. Good luck!

I pressed set default controls and it deleted all the controls, how can i come back to normal ?

Before changing anything, I'd try closing the editor and launching it again. If you're in a packaged build, check your Input.ini to make sure the binds are there. I have to manually paste them on every build.

I pressed set default controls and it deleted all the controls, how can i come back to normal ?

Also, the arrays holding the default binds have to be exactly the same as the Input.ini. /ProjectSettings/Input doesn't seem to be a good way to modify the binds. Sometimes it doesn't update accurately without launching the editor again. You can find some posts on Epics forums talking about these issues.

To answer your questions, I'd have to spend a few hours reading about it again. I'm working on AI stuff at the moment and just finished a JSON/REST server browser system. That's mostly what's at the top of my mind right now. I'm not smart enough to remember things I worked on in the past without brushing up again. Sorry

The menu system has no game play implemented features and as a result the player count isn't updated. You'll have to implement your own session updating blueprints. It would be fairly easy. You just update the session information when the number of players change.

Edit: Hang on, there might be a deeper issue here. My mistake, sorry. I'll post how to get player counts to work. I just tested it in LAN. I need to test Steam as well. For LAN, you can use "Get Max Players" and "Get Current Players" inside "WidgetBlueprint'/Game/Cardinal/MainMenu/Blueprints/UI/PlayGamePanels/ServerList.ServerList'" Functions "BuildInternetListenSearchResults" and "BuildLANSearchResults." I think there are still bugs with this feature in Dedicated Server builds.

Edit2: Steam doesn't update playercounts correctly using this method. Session Update and Session Extra Settings method may work though. I'll try that in a bit.

The project has been released for Unreal Engine 4.16 today. Major changes for this release includes making the Escape Key always open InGameMenu despite binds, the project now updates the number of players currently in session, and fixes the default binds not working when first compiling the project.

Also, Victory Plugin and GamepadUMGPlugin still use a TargetInfo argument instead of the new ReadOnlyTargetRules argument and as a result they throw errors. Rama will likely fix this issue soon. LoadingScreen plugin had compile issues in 4.16 and a version a few commits earlier was used instead. The project was updated to use ReadOnlyTargetRules arguments.

Ping isn't implemented in online session. This is on the engine side of things. It may be implemented in the future by Epic. You can program your own solution or another way around it is to fetch the server's external IP, put the IP in the session info, and use PingPlugin at https://github.com/DescendentStudios/PingPlugin.

Hi, I'm on Unreal 4.16.1 with the most recent version of the menu system. I followed the directions to import this into an existing project, but have many unknown reference errors. One for example is in the MainMenu widget BP: "Menu Button Line", "Get All Buttons", "Un Select All" are all unknown variables/functions. I could start over and try again in case I made a mistake, but maybe you could easily tell what I have missed. Where are these functions defined? Thanks for any help.

Okay, I understand a bit better now. I guess the "Menu Button Line" does not exist because the RadioButtonLine BP contains errors. All of the construct functions in the widgets have their class undefined. I'm not sure how this happened, but everything is all messed up now. I will try to reimport the files.

Hi, I'm on Unreal 4.16.1 with the most recent version of the menu system. I followed the directions to import this into an existing project, but have many unknown reference errors. One for example is in the MainMenu widget BP: "Menu Button Line", "Get All Buttons", "Un Select All" are all unknown variables/functions. I could start over and try again in case I made a mistake, but maybe you could easily tell what I have missed. Where are these functions defined? Thanks for any help.

I've had these problems a few times in this project and in others and I'm not sure exactly what caused them. Sometimes going into the BP file and pressing compile fixes the issues. Sometimes I have to reimport things. Other times it's because of different engine versions. You said you used 4.16, so I don't think that would be the issue. You can try compiling the BPs. Sometimes it's easier to re-create the variables or drop the nodes again. It kind of depends on how many were not found. If I find an answer, I will post it here.

u Button Line" does not exist because the RadioButtonLine BP contains errors. All of the construct functions in the widgets have their class undefined. I'm not sure how this hap

Can you open RadioButtonLine BP and fix the errors? It may just need a re-compile. It's located at WidgetBlueprint'/Game/Cardinal/MainMenu/Blueprints/UI/Elements/RadioButtonsLine.RadioButtonsLine'. I've had weird issues with importing and exporting. If you have to re-arrange directory structures, I move things in the starting project first before importing them to minimize weird issues. You can try packaging CardinalMenu before importing first. Maybe that will help.

Great work! I have been playing around it and works quite well! Out of curiosity, have you gotten this to work for a dedicated server? While i have gotten dedicated servers working in other scenarios ( Null OSS) can't seem to get one to work with Steam.

Thanks! I haven't gotten it to work. I tried for a bit. It's quite complicated to get steam online sessions to work with dedicated servers. For the project I'm working on, I fetch the server's external IP then I use VaRest plugin to write the IP to a simple database (CouchDB) with a time stamp. Then I have clients fetch the list of servers on the database and filter out ones that are more than X minutes old. I have live servers write their current times every few minutes. This way there is a basic list of live servers the clients can fetch. They connect using the open "ip" console command. It makes the server list lightning fast. CouchDB is pretty cool but difficult to use. There are other similar database systems out there. I've seen some people use MySQL. I think that's resource overkill personally. Especially if you run a resource limited VPS. JASON and a simple database work well.

I'll release this method once the project is done. I'm hoping, in the mean time, better support for Steam dedicated servers will come out. I don't want to re-invent the wheel. I've tried that in the past only to have the feature come out a bit after I finished it.

Hi, I downloaded your project files, but when I need to rebuild I get error: "CardinalMenu could not be compiled. Try rebuilding from source manually". I tried on every version of your project, on 3 different pc and no luck, please can you help me? I use Microsoft Visual Studio 2015 Enterprise

Hi, I downloaded your project files, but when I need to rebuild I get error: "CardinalMenu could not be compiled. Try rebuilding from source manually". I tried on every version of your project, on 3 different pc and no luck, please can you help me? I use Microsoft Visual Studio 2015 Enterprise

Do you have this problem on all UE4 projects with source code? I've had this problem for many various reasons in the past. You can try this.

Right click on CardinalMenu.uproject and select Generate Visual Studio project files. It should have created CardinalMenu.sln in the same directory.
Open CardinalMenu.sln
In Solution Explorer (typically on the right) open Games -> CardinalMenu
Right click on CardinalMenu in Solution Explorer and click rebuild.
A log should appear on the bottom and show you errors.
Paste this log here and I'll look at it.

Other Possible Solutions
A common problem I get is Visual Studio logs my credentials out for some reason. I have to open Visual Studio and on the top right there's a drop down arrow and it says "An error has occurred and we can no longer retrieve user information for... " I then have to log in. This might be in Community Edition only though. I haven't used the enterprise version of VS 2015. Only older versions.

Another problem is the C++ compile add ons might not be included with your install of VS2015. Is this the first project you've used for UE4? Usually this happens when someone first starts messing around with Unreal 4 or they are using a new computer. Here's the solution.
"Visual Studio 2015 (VS2015) doesn't install C++ tooling support by default. When installing VS2015, choose Custom installation and then choose the C++ components that you'll need for your workflow. If you've already installed Visual Studio 2015, choose File > New > Project > C++ to install C++."

Hi, everyone! Thank you for the excellent work here! I'm learning a lot!

I've integrated the Cardinal menu into my project and I'm having one issue with key bindings. My game has seven action inputs and two of them do not work after remapping for PC. Only three inputs work on an XBOX controller. The working XBOX actions are different than the working PC actions.

I have the defaults setup, actions are in alphabetical order, and I see the Input's swap under project settings.

Input.ini and in your project configs
The DefaultActionBinds in ControlsSettingsDetails located at /Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/ControlsSettingsDetails
DefaultAxisBinds located in RAMA-AxisControls at /Game/Cardinal/MainMenu/Blueprints/UI/SettingsPanels/RAMA-AxisControls

The order matters to the engine. It should be alphabetical. To my knowledge, nobody has come up with a better method without programming one or using a form of real time binds on every tick such as Mathew Wadstein's BindableKeys system. (Bypassing UE4's method basically)

Sorry I couldn't be much more help. I'm out of town for the US holiday weekend. I will be back on Monday and take a look at the input system and see if I find any issues. I need to make the new release for 4.17 as well. Hopefully the plugins have no problems with the new engine. That is why we wait a bit for new releases.

I'm going to make the instructions more reader friendly next week as well. The forum software's plugin for "spoilers" is no longer working. I was hiding the instructions with dynamic buttons that hide the different instructions settings to make it more readable.

Edit: Strange, it doesn't appear to be working on Ethernet to WiFi LANs on my network. (Could be related to how my network is set up) I'll check Ethernet to Ethernet. I'm looking into it. I've experienced some cases where certain types of network setups didn't show LAN games or took a long time for them to appear.

I'm looking into Advanced Sessions Plugin and the BP nodes. I'll hopefully have fix tomorrow. Very little has changed in 4.15-4.17 versions.

Edit 4: Packaged LAN search and join works on the same PC when launching two instances. Going to try ethernet via switch LAN on two PCs.

Edit 5: It works on LAN network via wired on a local switch. It did not work on WiFi via WiFi Access Point to a wired client. I don't know why. It must have something to do with how Epic designed the sessions broadcasting over the network. My guess is that there's a broadcast packet that's being blocked by my access point.

@like3727
Hmm, I didn't experience that problem. What version did you test? What region of the world are you in? How are you testing it? Are you testing LAN on a wired network or wireless? Separate devices? Did you investigate routers for port forwarding issues with steam? I tested the project locally in the Midwest of the United States and also on a wired switch using laptops and a desktop. Discovering sessions on a LAN can take a while.

I wonder if your Steam problem has something to do with the test App ID and what region you are located in? They are region locked to my understanding, meaning you have to test it in the same geographical location unless you have your own App ID. On LAN, were you working on WiFi? LAN uses Epic's default online subsystem and I've had problems with it on some networks depending on how they are configured.

As far as filtering goes, it's fairly simple how it works but isn't really used by the example project. It looks at the extra variables passed by the online session and removes them accordingly. It might require a bit tweaking depending on how you want to set up your project. (For example, filtering by maps would require more maps than the test project has.)

Thanks for checking out the project. Hopefully you find something useful about it.

Hi there, I get this error everytime I try compiling with Visual Studio 2017. It does not let me do so with 2015, it says that the project is incompatible with that Visual Studio version. Any help would be greatly appreciated. Thank You.

@Thaddeus 4.14 version, I was in Chongqing, China, wired network, different computer test, opened steam, set up a host computer, other computer connections failed to search for this host. It was all right before, it was yesterday, the test connection was not up, the search was not the host.
双语对照

@rexregum I have problems with VS2017 on all my projects. I'm not sure if it's a problem with a specific plugin or UE4 and VS2017. I spent days trying to figure it out to no avail. I'm not sure the answer on that, sorry.

You can contact me on here or on Discord. The top of the forums have a link to the Discord channel. I don't know how much assistance I can provide, though. You might just have to experiment with the project and see what the issue is. I test each build before they are released. The 4.18 build should work without issues. If you need 4.14 specifically, I can go back and check it to make sure it works. It's been a while since I worked with that version of the engine.

I just downloaded the 4.14 version of the project and packaged it, deployed it to my desktop and laptop, and tested it in both Steam and LAN. It works. I didn't change anything with the project. If yours doesn't work, I cannot tell you why. Attached are screenshots showing my results of the tests. (These tests were conducted on the same LAN network with the server being wired to a switch connected directly to a router and the client being wireless connected to a wireless access point.)

I just downloaded the 4.14 version of the project and packaged it, deployed it to my desktop and laptop, and tested it in both Steam and LAN. It works. I didn't change anything with the project. If yours doesn't work, I cannot tell you why. Attached are screenshots showing my results of the tests. (These tests were conducted on the same LAN network with the server being wired to a switch connected directly to a router and the client being wireless connected to a wireless access point.)

Well, thank you, because I am the engine compiled with the source code. I can not search it by packing it, and you can search it with a compiled engine.

Hey so I just downloaded the latest version of cardinal menu (4.18), and I seem to be having problems with the controls settings not fully showing up on a packaged version of the game which seems to break the characters movements within the example map. I have checked the defaultinput.ini file within the packaged game and the axis and action mappings are there in alphabetical order. The controls show up just fine within the standalone game when in editor but not sure why it's breaking for the packaged game unless I'm missing something. Any ideas?

@Thaddeus It's happening when I package the .uproject. It works fine within the editor when playing standalone or launching the game but once I package it, it breaks.

You have to manually drop the config files into the packaged directories once it's done. Below is where I put them in the demo to get it to work. For some reason the editor doesn't automatically place them when you package.

\CardinalMenu\Saved\Config\WindowsNoEditor\Input.ini
and
\CardinalMenu\Config\DefaultInput.ini

Did that work? You might have to create some directories if they are not automatically present.

@Thaddeus That fixed it, thankyou! I also have another problem that showed up when testing the packaged build with my brother over steam. When I went to host a game he was able to see it in the server list but when he went to double click it it threw an error saying couldn't connect to server. Then I tried to join one that he created but it never showed up for me but rather showed the game I made and said that he was within that game. Tried reloading the game to see if that would fix the problem but still ran into the same server listed. Also not sure if you fixed it or not in an earlier version but the ping was showing 9999 still.

There's still no fix for the 9999 ping bug. I use the ping plugin on the main project for it, though, and broadcast the hosts IP as a session variable. The problem is Epic hasn't implemented pings for listen server sessions.

As far as the hosting and seeing sessions goes, I've had problems with LAN and WiFi. I'm sure it has something to do with network configuration. (Possibly a security setting about broadcasting packets over a WiFi access point)

If your test was over the internet, it could also be firewall rules causing the issue or Steam region lock. Since this uses Steam Test APPID's, sometimes I've had issues with Steam. If you have your own APPID, then that issue should go away. (If it's related to region locking)

Those are the three issues I've seen.

Was your multiplayer session broadcast test over LAN with WiFi? Or over the internet?

@SkillzKilli I'm glad to know that fixed your inputs! The input system has been quite the headache. I hope Epic changes the way it works soon. But I think they are more concerned about the serious engine stuff.

@Thaddeus it was over the Internet, we were in the same state just 500 miles apart so I don't think the region thing shouldn't be an issue (Washington state). Could be something with our firewalls but not too sure on how to check if that's the culprit? I can test more when I get home from work tonight. I'm also using the test appid for this.

@Thaddeus it was over the Internet, we were in the same state just 500 miles apart so I don't think the region thing shouldn't be an issue (Washington state). Could be something with our firewalls but not too sure on how to check if that's the culprit? I can test more when I get home from work tonight. I'm also using the test appid for this.

It's likely a firewall issue if nobody is reporting problems with Steam's test appid. I've heard a lot of problems with in in China, but not here.

It is possible that maybe there's too many people using the test appid at the same time when you tested it. I can't remember off my head, but OnlineSessionPlugin only fetches so many sessions by default. The way the server browser works is by filtering out all non-matching sessions. That could be the issue. Or a firewall issue.

If you find out that it's a firewall thing and you plan on releasing a big commercial game, I think UWorks does NAT punchthrough. (To bypass firewalls without configuration) I haven't tried it since it's $109 on the marketplace, but I hear it's pretty good.

@Thaddeus Hey so I was just wondering, in the editor when I go to the movies folder the only thing in there is the setting.jpg but in the directory of the project (\CardinalMenu_Project_v171227_418\Content\Movies) you can see the video files there. How are you loading in the videos to be played without having them in the editor? Did you just put them in the defaulftgame.ini or is there a different way of working with them. I just want to be able to do my own videos when I get my game to commercial. Thanks

I can not make this Source tree to work. I open it and past the URL:http://repositories.metahusk.com/menu.hg
select the folder with the project : CardinalMenu_Project_v171227_418 and the name : CardinalMenu_Project_v171227_418. But I get an error and it does not allow me to clone it.

I can not make this Source tree to work. I open it and past the URL:http://repositories.metahusk.com/menu.hg
select the folder with the project : CardinalMenu_Project_v171227_418 and the name : CardinalMenu_Project_v171227_418. But I get an error and it does not allow me to clone it.

That's weird, I can clone it without a problem using TortoiseHg and this command. I'm waiting for it to finish as I type this. (Edit: It cloned without issues.) I had a problem with SourceTree in the past. Maybe it's a SourceTree bug?
hg clone --verbose http://repositories.metahusk.com/menu.hg "I:\Unreal Projects\menu.hg-clone"

How does one go about opening the In Game menu? I got it to open biut then it would not close or return to the game for example. I do not purely understand the logic here..can you elaborate a little on how this works?

I saw you made something on the M keypress but what exactly happens there or how do we implement this?

Actually I guess the open/close menu is implemented in the test level you included with the menu itself. I'll try looking there for the implementation and then report back if I still can't get it to work.

i cannot open the ingame menu or even if it opens it wont work as intended. how do we add and remove it from the viewport? thanks

The blueprint ThirdPersonPlayerController has an event called CreateinGameMenuWidget on construction.

There's also an action binding that opens and closes the window in the same blueprint. Basically, that action binding flip flops from showing and hiding the widget while also showing and hiding the mouse cursor.

Edit: I was just able to open the project freshly cloned from the repository using 4.19.2's launcher edition on Visual Studio 2015. I'll try the compressed download copy next.

Edit2: I'm getting strange problems with the downloaded project and 4.19.2 as well. I'm not sure what the problem is yet. I'll get back to you.

Edit3: Turns out I have an issue with Windows Search Service and Win10's built in explorer's unzip program. It didn't decompress all the files. The downloaded version of the project compiled on 4.19.2 with VS2015 without issues.

I'm not sure what your problem is. Are you using Visual Studio 2017? I've had problems with it in the past.

Sometimes there are small changes in the engine that require a bit of tweaking to the directions. Basically find any reference to the old name and replace it with your name. Either in the code or in the project filenames.

When i go to friends list or network in game menu it says connection failed how do i fix this i made a new project just with your files like the steps said so dont know why it ant working. if i hit shift+tab it shows me steam but says im playing spacewar? if thats working shouldnt it work on the friends list and network and how do i hook the sever side up to steam severs with my own name not spacewars.

Ok is there a way we can talk one on one? I went ahead and paid for my steam partnership and so i can make games for steam and get my own storefront and app-id but need some help setting up the the project. Do you have a chat we can use to talk.. email is to slow want to get this project moving but need some help with it but we can get more in to the details in a chat.

Ok i made a UE4 Source build on 4.19.2 i made a project and add your menu to it following HOW TO IMPORT CARDINAL MENU TO YOUR PROJECT guide. I got the game to play as standalone game and when i play and hit shift+tab i got it to work with my app-id now it shows my game name instead of SpaceWar but when i go to friends list or network or any thing that has to do with a server it says fail to connect how can i fix this.

You're using two different steam accounts to test a client joining the host, right?

To help troubleshooting, I'd take a look at the project settings in an unmodified version of the project. I've forgotten to set some of them before. I've also seen the values randomly change too and I'm not sure why.

If you're running the game in editor and not a packaged / built copy of the game, make sure you're playing as "Standalone Game" and not "Play In Editor."

Also, as a side note: In WidgetBlueprint'/Game/Cardinal/MainMenu/Blueprints/UI/PlayGamePanels/HostGame.HostGame' is where the Steam session properties are set. The server browser looks for those properties when making the list of hosted games. That's where you can modify those settings.

Maybe that helps? There's a lot of blueprints going on in this project. It might take a while to get a good idea of what all is going on but it should still be a lot easier than building your own from the ground up. Let me know if you figure out what was wrong. If you find a problem in the unmodified version of the project, let me know and I'll be able to better look into it. Goodluck

Hi, sorry to bother you. I'm using 4.19 version of your project and I tested Steam Party with 3 different computers and everytime it doesn't show ping of session, always show "-". Client successfully receive host ip address (I checked via print screen function). Does this happen to you? I know that Unreal have problem with Steam ping so we have to use additional plugin. BTW keep up the good work!

Hi, sorry to bother you. I'm using 4.19 version of your project and I tested Steam Party with 3 different computers and everytime it doesn't show ping of session, always show "-". Client successfully receive host ip address (I checked via print screen function). Does this happen to you? I know that Unreal have problem with Steam ping so we have to use additional plugin. BTW keep up the good work!

Are you testing them on different networks with a separate WAN address?

It happens on a lot of people's networks because it's ICMP pinging the router and a lot of routers reject ping requests for security reasons. I turn on "respond to pings" on my router. (Some routers don't give this option for some reason, they just reject all pings. They get rejected to stop botnets from scanning the internet for live IP addresses.) The ping method in this project doesn't do a NAT punchthrough for the ping on the local client, it's just a simple ping to the WAN address.

On the networks I've tested: Most public WiFi's I've tried seem to respond to pings, such as Starbucks. My cellular hotspot does not allow ICMP pings to pass, I imagine this is standard on cell networks. PfSense routers do not allow ICMP pings. Most century link routers I've tested do allow pings to go through.

Maybe we should put an explanation on the network search tab in the game.

I tested every case, ethernet to wireless, ethernet to ethernet, and wireless to ethernet. Computers are not in Lan, each is 2km away. I can't find that option in router. Thank you for quick respond, it looks like it's not a problem in us (blueprints).

I tested every case, ethernet to wireless, ethernet to ethernet, and wireless to ethernet. Computers are not in Lan, each is 2km away. I can't find that option in router. Thank you for quick respond, it looks like it's not a problem in us (blueprints).

Maybe we will have to look into a different solution to run pings. I really don't know the percent of routers that will allow ICMP pings or not.

If your game will run mostly dedicated servers, the method will probably work better because then there's usually a direct connection or forwarding involved. The dedicated server I test with has been working well. It does take a few seconds to display the ping, though.

But if you plan on running servers hosted by local clients, this might not be the best solution if most routers in the wild won't respond to ICMP requests. Good luck

I have a problem to find where i can change name of the playgamepanel and delete the split screen button from the menu.
can someone help me to delete this button? i only disable the window its open and change what it opens when you click on it

I have a problem to find where i can change name of the playgamepanel and delete the split screen button from the menu.
can someone help me to delete this button? i only disable the window its open and change what it opens when you click on it

Open the PlayGameSubMenu widget located here:
/Cardinal/MainMenu/Blueprints/UI/Submenus/PlayGameSubMenu.PlayGameSubMenu'

To change the names of the buttons:
Open the Designer tab on the Widget and then navigate to SettingsButtonsLine in the Hierarchy.
In the Details tab and in the Default section and then under ButtonsNames you will see an array of the names.
Change these names to change the button names.

To change the functions of the buttons:
Open the Graph tab in the widget.
Open the function called OpenDetailsContainer.
There you will see a SwitchonInt that controls each button in order from 0 to 4. This is where the button's actions are performed in order of their name listed in the array. (Like OpenMap and so on)

To remove the Local Split Screen Button:
Remove the button name in the array (Array item 1)
Then move the pins from switch on int to adjust for the order change. (So 2 now goes to 1, 3 to 2, and 4 to 3)

Sorry, we are having issues with php on our host. I've been working to resolve them. I hope to have it resolved soon.

Edit: The main website at metahusk.com is experiencing random 500 errors due to php problems. I was incorrect saying that the php problems were related to the forums at community.metahusk.com. They are hosted on different servers.

To solve your issue, I disabled the spoilers. I thought I had fixed the issue as I no longer see that problem on my end on Chrome or Firefox but apparently it is not resolved.

I noticed a bug with the source build of Unreal Engine version 4.21.0 that stops Steam clients from joining a server due to a false "out of date client" error. Using the launcher version of the engine does not have this issue. I think it may be a problem in 4.20 as well but I haven't confirmed it.

Can somebody please help to get this working. I have all the plugins extracted to the correct directory, I have generated the VS project files using VS community 2015 which is installed using the custom menu and making sure VS C++ is ticked but when i goto open it asks me first to install missing modules (which i'm aware is fine) then i get a messag saying "cardinalmenu could not be compiled. Try Rebuilding from source manually" please can somebody help me, i took the day off work to try and get this up and running but i can get over the first hurdle. lol

Can somebody please help to get this working. I have all the plugins extracted to the correct directory, I have generated the VS project files using VS community 2015 which is installed using the custom menu and making sure VS C++ is ticked but when i goto open it asks me first to install missing modules (which i'm aware is fine) then i get a messag saying "cardinalmenu could not be compiled. Try Rebuilding from source manually" please can somebody help me, i took the day off work to try and get this up and running but i can get over the first hurdle. lol