Advanced Social System

I changed what you said and it works PART but not right LOL

here is a video so you can see my issue.

Hello, watched the video just trying to figure it out. I think I know why its doing that, it looks like the way you are casting to the playernameplate is the issue. Instead you should be setting the nameplate component in the car to display the info that you get get from the players name. It doesnt look like possesion is the issue. also I think the reason its turning on and off is because you are telling it to hide and show when you enter and leave car and from the way you have it setup its using the same info on both instead of having separate info for the car nameplate. try again without hiding the name plate and see if it shows over the car. it might show two name plates but then that means that’s what is happening. I’ll look in to it a bit try to explain better just give me a few min.

The way I think you should do it, is that when the player gets in a car you set an offset on the original nameplates location, so it’s higher on the Z axis or what ever. then you just hide the player but not his nameplate and when you dismount you set the nameplate back to the standard position.

the more I look in to it the more this option makes sense. Since the player name plate is in UMG and already gets the info you wouldn’t want to set it up a second time. This way the distance scaling that is already setup stays the same guild names and so forth. The Car doesnt needs its own nameplate as its just a vehicle the controller posses not a new player.

let me know if this works

note you will need to pull off reference to the nameplate from the player. I just have a get “nameplate” as I’m in the player BP not the sedan BP

ok so i been trying different things and some how i got it to work!!!

Don’t ask HOW but i was able to force player state to be part of the PAWN not the controller HAHA editor bug maybe? who knows. i just know it is working now!!!


wow i like your code better. im going to try to use it. it seems more efficient then what im doing.

Yes the UMG widgets themselves are simple and clean which makes them easy to alter if you have a basic understanding of UMG workflow :slight_smile:

Unreal Engine 4.14
------- 4.13 → 4.14 Upgrade Notes -------

No known issues :smiley:

Any suggestion what i should do in this case?

Is the connected node enough, or does it require the target connection, because it works when you add the Actor component, but then no PlayerState input connection. This happened after changing the PlayerFrame, which lead to a succession of failure :slight_smile:

Added a fresh copy of the 4.14 release into my project, moved the SocialComponent, opened it, and the same node is broken.

This fixes it, but is it enough?

Also this node is broken on restart (Changed the related PlayerState reference for my project, after the error became visible). Also changed then the SPlayer structure PlayerState, still the error is there.

a8f7660f0c0851a8c0c3dbe29b919dcdaa27ea17.jpeg

Okay, above error can be fixed, when just connecting the node, closing the editor, then delete Saved and Intermediate folder, restarting. Problem gone.

The 4.14 emotes are not working, correct? Testing the fresh untempered version, emotes not playing.

The errors are strange. Moving the component shouldn’t be breaking things in your new project.
I have tried to reproduce this error and can not. Perhaps there are a few hiccups still in the new 4.14 engine release. I would try migrating again but don’t move the component to a new folder until you have compiled and ran everything, cleaned up redirectors and then closed and reopened the project. Sometimes the Editor can get all jumbled up.

I just downloaded it fresh again in the launcher and created a new 4.14 project and the emotes are still playing correctly on my end.
Perhaps this is a result of the earlier issue with moving the component in your new project?

Please send me a support email as I would be interested to see what is causing this in the editor so we can submit a bug report to Epic and get a fix for 4.14.1/2.

Just went to my Launcher, deleted ***, created new project (deleted folder from hard drive too), when i type /emote dance nothing happens, only text in chat. Sending you a email now.

Oh. You only have to type /dance

/Emote lets you create a text emote. Like /emote rolls on floor laughing

Lol, okay it works in my project too, and my above fix seems to suffice. I skipped through almost all content yesterday, and so nice to see your skill and dedication, considering how complicated Unreal can be, and how complex this project is, great work, and thank you for the fast response. Cheers.

Btw. is it normal behavior if you have a login integrated, and test with 2 clients, that only one window works properly. Player entities can be seen, animations and stuff is replicated, just not the Player Controller related code is produced correctly. I guess because of the default usage of Get Player Controller “0”, right? My project has a lot of this, including Login to Gamesparks, only one client gets the login screen, the other spawns right in the level.

Yes the Get Player Controller 0 causes issues when testing in editor because they are all running off the same instance of unreal. In the advanced launch options in editor you can make each client run as it’s own process. Or change your logic to avoid using Get Player Controller 0 which in my opinion is the better way to do it if possible.

So how would i change a player’s name? i tried creating a login screen to do this with no avail.

Creating a new function to update a players name is very simple. You would just need to know the player ID you want to update and then you can update that players data that exists in the player array.

But when creating new features in unreal, choosing the best methods to approach a problem really depends on your game design. perhaps you want to create a command for changing a players name, or maybe you just want the server to be able to do it(function vs command). If your login system registers new players you would want that login system to save the data and then when your social system loads data it can read this new player information.

The issue is though that the demo DataTable included just provides dummy data to load into the social system example to simulate loading your data from a database, save file, or any other source you decide to use in your game.
The dataTable can not be updated at run time. It just serves as a collection of demo data to populate the Social System.

If you look in the SocialGameState you will see where the arrays of data are populated by loading this demo data and when you have a way of saving and loading your game data you will be hooking it up here in the SocialGameState.

Depending on your game design you might want to be storing everything in a database or using save files. VaRest is a good plugin a lot of people use to get data from a webserver that’s connected to a database. Or you can simply have the server save and load save files that contain all this data using unreals save/load system. Hooking up loading and then saving social system data is very easy as you can see by the simplicity of the load logic currently in the SocialGameState.

I hope this helps point you in the right direction.

Hi, I tryied to merge this asset with your multiplayer topdown, my problem is that only the host is seeing the chat window and if I join a dedicated server, nobody see the chat window.
And I have this error, I guess it’s related to my problem:

Edit: Ok, it looks that I have the same problem :

Hrmm that is odd it’s erroring on the GetOwner node. Have you tried deleting and readding the Node?
Sometimes the editor gets tripped up.

If only the host is seeing the chat window, you are not initializing it for clients.

Can you show me where you put the initialize logic for the Social System in the MPTopDownKit PlayerController

I’ve tryied delete/rewrite the nodes, deleting the save and intermediate folders, fixing redirectors, etc. Still the same error.

If you mean the “Client_LoadPlayer” event, I paste it in the event graph of the MPTopDownNetworkController and I call the event in the MPTopDownGameMode like this :

About the error, have you parented your MPTopDownPlayerState to SocialPlayerState?

As for the window not loading for clients have you merged the HUDLayout. So the SocialSystem widgets are added into your MPTopDownKit’s HUDLayout (I know I should have named that file differently in my three assets… my mistake) and then you update the reference in the Client_LoadPlayer Logic.
It seems weird that it works for the server but not clients. That makes me think the Social Systems Init is only running on the server. Do you get any warnings or errors in your log?