You don’t need to send the player as an argument as the FireServer function does that for you. As such:
-- Client
local Remote = game.ReplicatedStorage.GameHiearchy.RemoteEvents.client_DialogueEvent
Remote:FireServer(3.5, "The phone began to ring.")
-- Server
local Remote = game.ReplicatedStorage.GameHiearchy.RemoteEvents.client_DialogueEvent
Remote.OnServerEvent:Connect(function(player, displayTime, message)
print(player.Name)
print(displayTime) -> 3.5
print(message) -> The phone began to ring.
dialogueConfig:Dialogue(player, displayTime, message)
end)
Although I would still find the following code a better replacement for the server.
local Remote = game.ReplicatedStorage.GameHiearchy.RemoteEvents.client_DialogueEvent
Remote.OnServerEvent:Connect(dialogueConfig.Dialogue(dialogueConfig, player, displayTime, message)
-- On the client:
RemoteEvent:FireServer('Sample_01') -- The Local Player is automatically passed as the first parameter to FireServer.
-- On the server:
RemoteEvent.OnServerEvent:Connect(function(Player, String)
print(Player) -- LocalPlayer
print(String) -> Sample_01
end)