MSGT Update – Instructions for multicast fix

So I didn’t include any images for the fixes included in the update, simply due to the complexity of these fixes. However, one particular fix is pretty important and I’ve already had several people request instructions for it, so I thought maybe it’d be best to include them here on their own.

The issue being presented is that, if the host uses an item (gun, tool, consumable, etc.) it would cause the clients to become unpossessed. This is due to an error on my part, putting a multicast event inside of the player controller. The steps to fix this are as follows:

PLEASE NOTE: This fix is already included in version and is not required if you are working with that version of the template!

Step 1.

Open up the interface blueprint BPInt_Character (which can be found in Content/SGT/Blueprints/Interfaces/Game) and create a new interface event. I called it TriggerSound. You will want to give it two inputs – a sound base and a vector. Once that is done, compile and save this blueprint.


Step 2.

Now you want to open up SurvivalCharacter (which is in Content/SGT/Blueprints/Game) and create two events. The first is a custom event (I called it PlaySound) that is set to Multicast and Reliable. Give it the same input variables (a sound base and a vector) as the interface event had. This simply needs to be hooked up to a PlaySoundAtLocation node, and parse the sound and vector (as location).


The second event we need to make is the interface event, so right click and type “Event {NAME OF INTERFACE EVENT FROM STEP 1}“. You should see it in the list. Just hook up the input from this to a node that calls the event we just made in the screenshot above, as shown below.


Step 3.

A this point, compile and save the character blueprint. Now open up C_Manager-Inventory (which can be found in Content/SGT/Blueprints/Components). Go to the blueprint’s Event Graph and find the event called PlaySound. You want to replace any instances of this with our new interface message, so right click on PlaySound and click Find References.


It should find both PlaySound events and LocalPlaySound events. We only want to replace the PlaySound events, which are the ones highlighted below:


To replace these, start double clicking on them one at a time. You will get something that looks a bit like this:


Replace them with this:


Note that the event is an interface message (the one we made in step 1). The sound input is hooked up to whatever sound should be played at that point, and the location is hooked up to the same location used prior. The main thing to make sure you get is that the target node needs to be the player’s controlled pawn. in some events, there is no pre-existing reference to the pawn, so simply drop in a PlayerController reference and use the GetControlledPawn (as used in the screenshot above) to get a reference the player’s pawn.

Once all of these nodes are replaced, you can delete the PlaySound event in the event graph of C_Manager-Inventory and save as the fix is applied.


This post currently has 4 responses

    • Hey there. Sorry for the delayed reply… apparently I missed the notification =/

      All you need to do is open up the HUD widget (W_SGT_Layout) and hide the ones you don’t want to use/have visible 🙂 Hope that helps!

  • Hi thank you for the package and i have this error and dont understand why :/

    Error Blueprint Runtime Error: Accessed None trying to read property Sunlight from function: ‘SetSunParameters’ from node: SetActorRotation in graph: SetSunParameters in object: C_Manager-TimeOfDay with description: Accessed None trying to read property Sunlight

    • Hey there. I assume you have started your own level based on this… if that’s so, you either need to not use the time of day system, or set up your world correctly to use the time of day system. You can view more details on how to set things up here but I think the issue you are probably experiencing comes down to not tagging your directional light with “SGT_Sunlight”. If you have any other issues, or you haven’t started your own map, please let me know (ideally via as notifications of comments on here are a little less reliable haha). Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.