Skip to content
  • Forum's Homepage
  • Metahusk's Homepage
  • Mercurial Repositories
  • Git Repositories
  • Recent
  • Popular
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Metahusk Loco

[Community Project] Cardinal Menu System | Instructions And Help

Scheduled Pinned Locked Moved Metahusk's Community Forums
208 Posts 10 Posters 284.4k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ParvanP Offline
    ParvanP Offline
    Parvan
    First Cohort Moderator Sherpa
    wrote on last edited by Parvan
    #2

    Getting Started By Downloading Or Cloning Project Files:

    (To read the directions, click the button below.)

    :::

    1. Create a Project Directory folder in your Unreal 4 Projects Directory.

    Example Structure: C:\Users\User\Documents\Unreal Projects\Directory_Name

    1. Download the project here.

    2. Download and Install Microsoft's Visual Studio Community 2015 for Windows Desktop

    Visual Studio Community 2015

    4a. Navigate to \Your_Directory\Plugins and extract the files in VictoryPlugin(newest-version).zip to the plugins directory into a folder called VictoryPlugin

    Plugins Directory Structure: \Your_Directory\Plugins\VictoryPlugin"plugin files"

    4b. This plugin was removed in newer versions.

    4c. Navigate to \Your_Directory\Plugins and extract the files in AdvancedSessions(newest-version).zip to the plugins directory into a folder called AdvancedSessions

    Plugins Directory Structure: \Your_Directory\Plugins\AdvancedSessions"plugin files"

    4d. Navigate to \Your_Directory\Plugins and extract the files in LoadingScreen-master(newest-version).zip to the plugins directory into a folder called LoadingScreen-master

    Plugins Directory Structure: \Your_Directory\Plugins\LoadingScreen-master"plugin files"

    4e. Navigate to \Your_Directory\Plugins and extract the files in GamepadUMGPlugin(newest-version).zip to the plugins directory into a folder called GamepadUMGPlugin

    Plugins Directory Structure: \Your_Directory\Plugins\GamepadUMGPlugin"plugin files"

    4f. Navigate to \Your_Directory\Plugins and extract the files in PingPlugin(newest-version).zip to the plugins directory into a folder called PingPlugin

    Plugins Directory Structure: \Your_Directory\Plugins\PingPlugin"plugin files"

    4g. Navigate to \Your_Directory\Plugins and extract the files in VaRest(newest-version).zip to the plugins directory into a folder called VaRest

    Plugins Directory Structure: \Your_Directory\Plugins\VaRest"plugin files"

    1. Right Click on cardinal.uproject and click Generate Visual Studio project files.

    2. Execute cardinal.uproject and click Yes to Recompile Project Modules.
      0_1470810235398_rebuild.PNG

    3. Enable The Web Browser Plugin at Edit -> Plugins -> Widgets -> Web Browser
      0_1470814419201_browser.PNG

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

    :::

    1 Reply Last reply
    0
    • ParvanP Offline
      ParvanP Offline
      Parvan
      First Cohort Moderator Sherpa
      wrote on last edited by Parvan
      #3

      How To Import Cardinal Menu To Your Project

      (To read the directions, click the button below.)

      :::

      1. Open your project's Project Directory folder in windows explorer.

      Example Structure: C:\Users\User\Documents\Unreal Projects\Project_Name

      1. Download the project files from the webpage.

      Download URL: metahusk.com/cardinal-menu/

      1. Convert your project to a C++ project if it's a Blueprint Only project.

      Convert a BP/Content Project to a C++ Project

      1. Navigate to \Your_Directory\Content and extract the \CardinalMenu\Content\Cardinal and \CardinalMenu\Content\ThirdPersonExample and \CardinalMenu\Content\Movies into your project's content folder.

      2. Navigate to \Your_Directory and extract the \CardinalMenu\Plugins folder into your project's root directory.

      6a. Navigate to \Your_Directory\Plugins and extract the files in VictoryPlugin(newest-version).zip to the plugins directory into a folder called VictoryPlugin

      Plugins Directory Structure: \Your_Directory\Plugins\VictoryPlugin"plugin files"

      6b. Plugin removed in newer versions of the engine.

      6c. Navigate to \Your_Directory\Plugins and extract the files in AdvancedSessions(newest-version).zip to the plugins directory into a folder called AdvancedSessions

      Plugins Directory Structure: \Your_Directory\Plugins\AdvancedSessions"plugin files"

      6d. Navigate to \Your_Directory\Plugins and extract the files in LoadingScreen-master(newest-version).zip to the plugins directory into a folder called LoadingScreen-master

      Plugins Directory Structure: \Your_Directory\Plugins\LoadingScreen-master"plugin files"

      6e. Navigate to \Your_Directory\Plugins and extract the files in GamepadUMGPlugin(newest-version).zip to the plugins directory into a folder called GamepadUMGPlugin

      Plugins Directory Structure: \Your_Directory\Plugins\GamepadUMGPlugin"plugin files"

      6f. Navigate to \Your_Directory\Plugins and extract the files in PingPlugin(newest-version).zip to the plugins directory into a folder called PingPlugin

      Plugins Directory Structure: \Your_Directory\Plugins\PingPlugin"plugin files"

      6g. Navigate to \Your_Directory\Plugins and extract the files in VaRest(newest-version).zip to the plugins directory into a folder called VaRest

      Plugins Directory Structure: \Your_Directory\Plugins\VaRest"plugin files"

      1. Open \CardinalMenu\Source\CardinalMenu.Target.cs and paste bUsesSteam = true; into your \Your_Directory\Source\YourProject.Target.cs like so:

      public class YourProjectTarget : TargetRules
      {
      public YourProjectTarget(TargetInfo Target)
      {
      Type = TargetType.Game;
      bUsesSteam = true;
      }

      1. Open \CardinalMenu\Source\CardinalMenu\CardinalMenu.Build.cs and paste the PublicDependencyModuleNames and PrivateDependencyModuleNames into your \Your_Directory\Source\YourProject\YourProject.Build.cs like so:
       PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore",  "AdvancedSessions", "OnlineSubsystem", "OnlineSubsystemUtils", "Networking", "Sockets", "OnlineSubsystemSteam", "OnlineSubsystemNull", "MoviePlayer" });
      
        PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "Sockets", "Networking", "OnlineSubsystemSteam", "OnlineSubsystemNull" });
      
      1. Open \CardinalMenu\Config\DefaultEngine.ini and paste the following into your \Your_Directory\Config\DefaultEngine.ini as shown:

      [/Script/Engine.GameEngine]
      !NetDriverDefinitions=ClearArray
      +NetDriverDefinitions=>(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

      [OnlineSubsystem]
      DefaultPlatformService=Steam
      PollingIntervalInMs=20
      bHasVoiceEnabled=false

      [OnlineSubsystemSteam]
      bEnabled=true
      SteamDevAppId=480
      GameServerQueryPort=27015
      bRelaunchInSteam=false
      GameVersion=1.0.0.0
      bVACEnabled=1
      bAllowP2PPacketRelay=true
      P2PConnectionTimeout=90

      [/Script/OnlineSubsystemSteam.SteamNetDriver]
      NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

      [Voice]
      bEnabled=false

      1. Right click on \Your_Directory\YourProject.uproject and select Generate Visual Studio project files.

      2. Open YourProject.sln, in Solution Explorer (typically located on the right) right click on Games and select Build.

      3. Execute cardinal.uproject and click Yes to Recompile Project Modules, if asked.
        0_1470810235398_rebuild.PNG

      4. Open Project Settings and select Maps and Modes. Set Game Default Map and Editor Startup Map to MainMenu. Set Default GameMode to ThirdPersonGameMode. Set the Game Instance Class to BP_GameInstance.

      5. Open the map MainMenu File -> Open Level at /Cardina/Mainmenu/Maps. Under the Blueprints button above the map make sure World Override is set to -> BP_MenuGameMode (should be set)

      15a. Enable The Web Browser Plugin at Edit -> Plugins -> Widgets -> Web Browser
      0_1470814419201_browser.PNG

      15b. Step removed in newer engine versions

      15c. Enable Loading Screen Plugin at Edit -> Plugins -> Loading -> Loading Screen

      15d. Enable Advanced Sessions Plugin at Edit -> Plugins -> Advanced Sessions Plugin -> Advanced Sessions

      15e. Enable Online Subsystem Steam Plugin at Edit -> Plugins -> Online Platform -> Online Subsystem Steam

      15f. Enable Gamepad UMG Plugin and Victory Plugin at Edit -> Plugins -> Installed -> Rama

      15g. Enable PingPlugin and Victory Plugin at Edit -> Plugins -> Network -> Ping

      15h. Enable VaRest Plugin and Victory Plugin at Edit -> Plugins -> Network -> VaRest

      1. Restart The Editor and click Yes to Recompile Project Modules, if asked.

      2. Set Up LoadingScreen by opening Edit -> Project Settings -> Game -> Loading Screen. Under Startup Screen Uncheck Auto Complete when Loading Completes, Check Movies are Skippable, Uncheck Wait For Manual Stop, Uncheck Show UIOverlay. Go to Movie Paths and add UE4Logo and MetahuskIntro to the array. Under Default Screen Check Auto Complete when Loading Completes, Check Movies are Skippable, Uncheck Wait For Manual Stop, Uncheck Show UIOverlay. Go to Movie Paths and add LoadingRed to the array.

      3. Navigate to the MainMenu Blueprints folder at \Cardinal\MainMenu\Blueprints
        0_1470810249459_enumerations.PNG

      4. 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.)
        0_1470810298370_gamemodes.PNG
        0_1470810343718_maps.PNG
        0_1470810359503_players.PNG

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

      :::

      1 Reply Last reply
      -1
      • ParvanP Offline
        ParvanP Offline
        Parvan
        First Cohort Moderator Sherpa
        wrote on last edited by Parvan
        #4

        Modifying Starting Map or Number of Players

        1. Navigate to the MainMenu Blueprints folder at \Cardinal\MainMenu\Blueprints
        2. 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.

        Modifying Menu Buttons Example: Removing The Local Split Screen Button

        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)

        Windows US Keyboard Default Input Bindings

        :::

        Inside Project Directories:
        \Saved\Config\Windows\Input.ini and Saved\Config\WindowsNoEditor\Input.ini and \Config\DefaultInput.ini
        Inside Packaged Game Directory:
        \WindowsNoEditor\CardinalMenu\Saved\Config\WindowsNoEditor\Input.ini

        Input.ini Default Windows Bindings:
        [/Script/Engine.InputSettings]
        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)

        [/Script/Engine.Console]
        HistoryBuffer=mexit
        HistoryBuffer=exit

        :::

        Known Bugs:

        (To view the known bugs, click the button below.)

        :::

        Bug: Client Returning to "Main Menu" can't join another game.
        Fix: Fixed 08/07/2016 at Changeset - a1943cb579fc

        Bug: The Editor's Play In Viewport option does not stretch the menu title bar all the way to the edge of the screen on some resolutions
        Fix: Use Play In New Editor Window

        Bug: Split screen menu cannot be scaled to overlay on the calling player's screen
        Fix: Unknown, possibly in future engine release

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

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

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

        Bug: Joining players in PIE spawn as spectators and not pawns
        Fix: 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.

        :::

        1 Reply Last reply
        0
        • ? This user is from outside of this forum
          ? This user is from outside of this forum
          Howie
          wrote on last edited by
          #5

          It doesn't seem like the server lines update the number of players that are in a server, you just set TOTPLAYING to 1 and then it never gets updated. Am I missing something?

          1 Reply Last reply
          0
          • ? This user is from outside of this forum
            ? This user is from outside of this forum
            Howie
            wrote on last edited by
            #6

            It doesn't seem like the server lines update the number of players that are in a server, you just set TOTPLAYING to 1 and then it never gets updated. Am I missing something?

            1 Reply Last reply
            0
            • ParvanP Offline
              ParvanP Offline
              Parvan
              First Cohort Moderator Sherpa
              wrote on last edited by
              #7

              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 for trying the project!

              1 Reply Last reply
              0
              • ParvanP Offline
                ParvanP Offline
                Parvan
                First Cohort Moderator Sherpa
                wrote on last edited by
                #8

                I should probably mention that in the documentation. I hope to have that feature implemented in a month or so.

                1 Reply Last reply
                0
                • ? This user is from outside of this forum
                  ? This user is from outside of this forum
                  Howie
                  wrote on last edited by
                  #9

                  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.

                  1 Reply Last reply
                  0
                  • ? This user is from outside of this forum
                    ? This user is from outside of this forum
                    Howie
                    wrote on last edited by
                    #10

                    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.

                    1 Reply Last reply
                    0
                    • ParvanP Offline
                      ParvanP Offline
                      Parvan
                      First Cohort Moderator Sherpa
                      wrote on last edited by Parvan
                      #11

                      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.

                      1 Reply Last reply
                      0
                      • ParvanP Offline
                        ParvanP Offline
                        Parvan
                        First Cohort Moderator Sherpa
                        wrote on last edited by
                        #12

                        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.

                        1 Reply Last reply
                        0
                        • ParvanP Offline
                          ParvanP Offline
                          Parvan
                          First Cohort Moderator Sherpa
                          wrote on last edited by
                          #13

                          We released a new version. This release includes a simple single player button (as requested), cleans up some of the debug printing to console, and includes a simple map loading video.

                          1 Reply Last reply
                          0
                          • ? This user is from outside of this forum
                            ? This user is from outside of this forum
                            Guest
                            wrote on last edited by
                            #14

                            Why ping steam 9999 ?

                            ParvanP 1 Reply Last reply
                            0
                            • ? Guest

                              Why ping steam 9999 ?

                              ParvanP Offline
                              ParvanP Offline
                              Parvan
                              First Cohort Moderator Sherpa
                              wrote on last edited by
                              #15

                              Guest said in Community Project | Cardinal Menu System Instructions, Help, and Discussion:

                              Why ping steam 9999 ?

                              There's a bug with the engine that causes that. We are waiting until it's fixed. (Hopefully soon)

                              ? 1 Reply Last reply
                              0
                              • ParvanP Parvan

                                Guest said in Community Project | Cardinal Menu System Instructions, Help, and Discussion:

                                Why ping steam 9999 ?

                                There's a bug with the engine that causes that. We are waiting until it's fixed. (Hopefully soon)

                                ? This user is from outside of this forum
                                ? This user is from outside of this forum
                                Guest
                                wrote on last edited by
                                #16

                                @Thaddeus-Delude Thanks for the reply

                                1 Reply Last reply
                                0
                                • ParvanP Offline
                                  ParvanP Offline
                                  Parvan
                                  First Cohort Moderator Sherpa
                                  wrote on last edited by
                                  #17

                                  The project has been released for Unreal Engine 4.14 today. So far there have been no reported bugs. Please let us know if you find any.

                                  1 Reply Last reply
                                  0
                                  • ? This user is from outside of this forum
                                    ? This user is from outside of this forum
                                    KRushin
                                    wrote on last edited by
                                    #18

                                    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.

                                    1 Reply Last reply
                                    0
                                    • ? This user is from outside of this forum
                                      ? This user is from outside of this forum
                                      KRushin
                                      wrote on last edited by
                                      #19

                                      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.

                                      ParvanP 1 Reply Last reply
                                      0
                                      • ParvanP Offline
                                        ParvanP Offline
                                        Parvan
                                        First Cohort Moderator Sherpa
                                        wrote on last edited by
                                        #20

                                        Thanks. I've had a lot of trouble getting it to work with Steam. It's possible but I've been waiting to see if it gets easier with new engine releases.

                                        1 Reply Last reply
                                        0
                                        • ? This user is from outside of this forum
                                          ? This user is from outside of this forum
                                          JC
                                          wrote on last edited by
                                          #21

                                          Great work! Will there be an update to UE version 4.15? Thanks!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Forum's Homepage
                                          • Metahusk's Homepage
                                          • Mercurial Repositories
                                          • Git Repositories
                                          • Recent
                                          • Popular
                                          • Groups