FString Map, Message = "Hello";
FLinearColor DisplayColour{0, 0.8, 0.8, 1}; // public declare this
AShooterPlayerState* player_state = static_cast<AShooterPlayerState*>(player->PlayerStateField()());
if (player_state && player_state->MyPlayerDataStructField()())
{
ArkApi::GetApiUtils().GetShooterGameMode()->GetMapName(&Map); // i suggest just public declare Map and just call GetMapName at init 1 time
ArkApi::GetApiUtils().SendChatMessageToAll(FString("(" + Map + ")[" + player_state->MyTribeDataField()().TribeName + "] " + player_state->MyPlayerDataStructField()()->PlayerNameField()() + ") " + player_state->MyPlayerDataStructField()()->MyPlayerCharacterConfigField()().PlayerCharacterName), L"<RichColor Color=\"{}, {}, {}, {}\">{}</>", DisplayColour.R, DisplayColour.G, DisplayColour.B, DisplayColour.A, *Message);
}
maybe this will help i haven't tested it but should be working
also this will work for dead players