Please help me figure out how to use GameMode/GameState for this Game Mechanic

Let’s say we have 2 players in a session. One is the host (not dedicated server) and one the client. Inside the game itself we want any player to be able to collect a task object and when it’s been collected, the task is done. I already know that there are the GameMode (Server Only), GameState (Server+Client) classes. There is also the LevelBP but I don’t think i would need that in this example.

My first idea was to detect when the actor has been picked up in its own Actor BP and then cast it to the GameMode and then somehow multicast it and let all clients know the task is finished but this feels wrong. I never really used GameState so I assume I would have to add it as a layer of communication but I honestly have no idea how to work with it.

What’s the most common way to handle a Synced game task mechanic like this?

Logic Overview:

  1. Any player “collects” actor object
  2. The host gets notified about specific task completion
  3. The host marks task as completed
  4. The host notifies all clients (including itself) about task completion

I figured it out. Wish there was more detailed info about important game classes in the official documentation.