> For the complete documentation index, see [llms.txt](https://400-interactive.gitbook.io/mapvote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://400-interactive.gitbook.io/mapvote/home-explanation.md).

# Home (Explanation)

## Explanation:

#### PlayerController:

If a vote is in progress, we request the current vote data when the player logs in.

1. BeginPlay ->
   1. RequestPlayersCountOnServerForPlayerVote ->
   2. S\_RequestPlayerAmount ->
   3. O\_RequestCurrentVotes ->
   4. S\_RequestCurrentVotes ->
   5. Get AC\_MapVote\_Manager and call S\_RequestCurrentVotes
   6. Return to PlayerController and call O\_LoadCurrentVotes
   7. Call UpdateVote on the MapVoteManager for each vote

#### AC\_MapVote\_Manager

1. StartVote (Server) ->
   1. handleVoteTimer ->
   2. If the vote is over ->
   3. handleEndOfVote ->
   4. StopVote & (ServerTravel or OpenLevel)
2. Player (Vote, Widget) ->
   1. GetOwningPlayer cast to PC\_MapVote ->
   2. O\_VoteForMap (Map \[Name])
