• Create a new MultiplayerMessageManager.

    In most cases, you should use the default gdjs.multiplayerMessageManager instead.

    Returns {
        addExpectedMessageAcknowledgement: ((__namedParameters) => void);
        clearAllMessagesTempData: (() => void);
        createChangeInstanceOwnerMessage: ((__namedParameters) => {
            messageData: {
                instanceX: number;
                instanceY: number;
                newOwner: number;
                previousOwner: number;
                sceneNetworkId: string;
            };
            messageName: string;
        });
        createChangeVariableOwnerMessage: ((__namedParameters) => {
            messageData: {
                newOwner: number;
                previousOwner: number;
            };
            messageName: string;
        });
        createDestroyInstanceMessage: ((__namedParameters) => {
            messageData: any;
            messageName: string;
        });
        createInstanceDestroyedMessageNameFromDestroyInstanceMessage: ((messageName) => string);
        createInstanceOwnerChangedMessageNameFromChangeInstanceOwnerMessage: ((messageName) => string);
        createUpdateGameMessage: ((__namedParameters) => {
            messageData: any;
            messageName: string;
        });
        createUpdateInstanceMessage: ((__namedParameters) => {
            messageData: any;
            messageName: string;
        });
        createUpdateSceneMessage: ((__namedParameters) => {
            messageData: LayoutNetworkSyncData;
            messageName: string;
        });
        createVariableOwnerChangedMessageNameFromChangeVariableOwnerMessage: ((messageName) => string);
        getConnectedPlayers: (() => {
            playerId: any;
            playerNumber: number;
        }[]);
        getCurrentPlayerPing: (() => number);
        getCustomMessageData: ((userMessageName) => any);
        getCustomMessageSender: ((userMessageName) => number);
        getLatestPlayerWhoJustJoined: (() => number);
        getLatestPlayerWhoJustLeft: (() => number);
        getNumberOfConnectedPlayers: (() => number);
        getPlayerId: ((playerNumber) => string);
        getPlayerPing: ((playerNumber) => number);
        getPlayerUsername: ((playerNumber) => string);
        getPlayersInfo: (() => {
            [playerNumber: number]: {
                ping: number;
                playerId: string;
                username: string;
            };
        });
        getPlayersWhoJustJoined: (() => number[]);
        getPlayersWhoJustLeft: (() => number[]);
        getVariableCustomMessageData: ((userMessageName, variable) => void);
        handleAcknowledgeMessagesReceived: (() => void);
        handleChangeInstanceOwnerMessagesReceived: ((runtimeScene) => void);
        handleChangeVariableOwnerMessagesReceived: ((runtimeScene) => void);
        handleCustomMessagesReceived: (() => void);
        handleDestroyInstanceMessagesReceived: ((runtimeScene) => void);
        handleEndGameMessagesReceived: (() => void);
        handleHeartbeatsReceived: (() => void);
        handleHeartbeatsToSend: (() => void);
        handleJustDisconnectedPeers: ((runtimeScene) => void);
        handleResumeGameMessagesReceived: ((runtimeScene) => void);
        handleSavedUpdateMessages: ((runtimeScene) => void);
        handleUpdateGameMessagesReceived: ((runtimeScene) => void);
        handleUpdateGameMessagesToSend: ((runtimeScene) => void);
        handleUpdateInstanceMessagesReceived: ((runtimeScene) => void);
        handleUpdateSceneMessagesReceived: ((runtimeScene) => void);
        handleUpdateSceneMessagesToSend: ((runtimeScene) => void);
        hasAnyPlayerJustJoined: (() => boolean);
        hasAnyPlayerJustLeft: (() => boolean);
        hasCustomMessageBeenReceived: ((userMessageName) => undefined | false);
        hasPlayerJustJoined: ((playerNumber) => boolean);
        hasPlayerJustLeft: ((playerNumber) => boolean);
        hasReceivedHeartbeatFromPlayer: ((playerNumber) => boolean);
        isPlayerConnected: ((playerNumber) => boolean);
        markPlayerAsDisconnected: ((__namedParameters) => void);
        removePlayerWhoJustJoined: (() => void);
        removePlayerWhoJustLeft: (() => void);
        resendClearOrCancelAcknowledgedMessages: ((runtimeScene) => void);
        sendCustomMessage: ((userMessageName, userMessageData) => void);
        sendDataTo: ((peerIds, messageName, data) => void);
        sendEndGameMessage: (() => void);
        sendResumeGameMessage: (() => void);
        sendVariableCustomMessage: ((userMessageName, variable) => void);
    }

    • addExpectedMessageAcknowledgement: ((__namedParameters) => void)
        • (__namedParameters): void
        • Parameters

          • __namedParameters: {
                expectedMessageName: string;
                maxNumberOfRetries?: number;
                messageRetryTime?: number;
                originalData: any;
                originalMessageName: string;
                otherPeerIds: string[];
                shouldCancelMessageIfTimesOut: boolean;
            }
            • expectedMessageName: string
            • Optional maxNumberOfRetries?: number
            • Optional messageRetryTime?: number
            • originalData: any
            • originalMessageName: string
            • otherPeerIds: string[]
            • shouldCancelMessageIfTimesOut: boolean

          Returns void

    • clearAllMessagesTempData: (() => void)
        • (): void
        • Returns void

    • createChangeInstanceOwnerMessage: ((__namedParameters) => {
          messageData: {
              instanceX: number;
              instanceY: number;
              newOwner: number;
              previousOwner: number;
              sceneNetworkId: string;
          };
          messageName: string;
      })
        • (__namedParameters): {
              messageData: {
                  instanceX: number;
                  instanceY: number;
                  newOwner: number;
                  previousOwner: number;
                  sceneNetworkId: string;
              };
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                instanceNetworkId: string;
                instanceX: number;
                instanceY: number;
                newObjectOwner: number;
                objectName: string;
                objectOwner: number;
                sceneNetworkId: string;
            }
            • instanceNetworkId: string
            • instanceX: number
            • instanceY: number
            • newObjectOwner: number
            • objectName: string
            • objectOwner: number
            • sceneNetworkId: string

          Returns {
              messageData: {
                  instanceX: number;
                  instanceY: number;
                  newOwner: number;
                  previousOwner: number;
                  sceneNetworkId: string;
              };
              messageName: string;
          }

          • messageData: {
                instanceX: number;
                instanceY: number;
                newOwner: number;
                previousOwner: number;
                sceneNetworkId: string;
            }
            • instanceX: number
            • instanceY: number
            • newOwner: number
            • previousOwner: number
            • sceneNetworkId: string
          • messageName: string
    • createChangeVariableOwnerMessage: ((__namedParameters) => {
          messageData: {
              newOwner: number;
              previousOwner: number;
          };
          messageName: string;
      })
        • (__namedParameters): {
              messageData: {
                  newOwner: number;
                  previousOwner: number;
              };
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                newVariableOwner: number;
                variableNetworkId: string;
                variableOwner: number;
            }
            • newVariableOwner: number
            • variableNetworkId: string
            • variableOwner: number

          Returns {
              messageData: {
                  newOwner: number;
                  previousOwner: number;
              };
              messageName: string;
          }

          • messageData: {
                newOwner: number;
                previousOwner: number;
            }
            • newOwner: number
            • previousOwner: number
          • messageName: string
    • createDestroyInstanceMessage: ((__namedParameters) => {
          messageData: any;
          messageName: string;
      })
        • (__namedParameters): {
              messageData: any;
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                instanceNetworkId: string;
                objectName: string;
                objectOwner: number;
                sceneNetworkId: string;
            }
            • instanceNetworkId: string
            • objectName: string
            • objectOwner: number
            • sceneNetworkId: string

          Returns {
              messageData: any;
              messageName: string;
          }

          • messageData: any
          • messageName: string
    • createInstanceDestroyedMessageNameFromDestroyInstanceMessage: ((messageName) => string)
        • (messageName): string
        • Parameters

          • messageName: string

          Returns string

    • createInstanceOwnerChangedMessageNameFromChangeInstanceOwnerMessage: ((messageName) => string)
        • (messageName): string
        • Parameters

          • messageName: string

          Returns string

    • createUpdateGameMessage: ((__namedParameters) => {
          messageData: any;
          messageName: string;
      })
        • (__namedParameters): {
              messageData: any;
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                gameNetworkSyncData: GameNetworkSyncData;
            }
            • gameNetworkSyncData: GameNetworkSyncData

          Returns {
              messageData: any;
              messageName: string;
          }

          • messageData: any
          • messageName: string
    • createUpdateInstanceMessage: ((__namedParameters) => {
          messageData: any;
          messageName: string;
      })
        • (__namedParameters): {
              messageData: any;
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                instanceNetworkId: string;
                objectName: string;
                objectNetworkSyncData: ObjectNetworkSyncData;
                objectOwner: number;
                sceneNetworkId: string;
            }
            • instanceNetworkId: string
            • objectName: string
            • objectNetworkSyncData: ObjectNetworkSyncData
            • objectOwner: number
            • sceneNetworkId: string

          Returns {
              messageData: any;
              messageName: string;
          }

          • messageData: any
          • messageName: string
    • createUpdateSceneMessage: ((__namedParameters) => {
          messageData: LayoutNetworkSyncData;
          messageName: string;
      })
        • (__namedParameters): {
              messageData: LayoutNetworkSyncData;
              messageName: string;
          }
        • Parameters

          • __namedParameters: {
                sceneNetworkSyncData: LayoutNetworkSyncData;
            }
            • sceneNetworkSyncData: LayoutNetworkSyncData

          Returns {
              messageData: LayoutNetworkSyncData;
              messageName: string;
          }

          • messageData: LayoutNetworkSyncData
          • messageName: string
    • createVariableOwnerChangedMessageNameFromChangeVariableOwnerMessage: ((messageName) => string)
        • (messageName): string
        • Parameters

          • messageName: string

          Returns string

    • getConnectedPlayers: (() => {
          playerId: any;
          playerNumber: number;
      }[])
        • (): {
              playerId: any;
              playerNumber: number;
          }[]
        • Returns {
              playerId: any;
              playerNumber: number;
          }[]

    • getCurrentPlayerPing: (() => number)
        • (): number
        • Returns number

    • getCustomMessageData: ((userMessageName) => any)
        • (userMessageName): any
        • Parameters

          • userMessageName: string

          Returns any

    • getCustomMessageSender: ((userMessageName) => number)
        • (userMessageName): number
        • Parameters

          • userMessageName: string

          Returns number

    • getLatestPlayerWhoJustJoined: (() => number)
        • (): number
        • Returns number

    • getLatestPlayerWhoJustLeft: (() => number)
        • (): number
        • Returns number

    • getNumberOfConnectedPlayers: (() => number)
        • (): number
        • Returns number

    • getPlayerId: ((playerNumber) => string)
        • (playerNumber): string
        • Parameters

          • playerNumber: number

          Returns string

    • getPlayerPing: ((playerNumber) => number)
        • (playerNumber): number
        • Parameters

          • playerNumber: number

          Returns number

    • getPlayerUsername: ((playerNumber) => string)
        • (playerNumber): string
        • Parameters

          • playerNumber: number

          Returns string

    • getPlayersInfo: (() => {
          [playerNumber: number]: {
              ping: number;
              playerId: string;
              username: string;
          };
      })
        • (): {
              [playerNumber: number]: {
                  ping: number;
                  playerId: string;
                  username: string;
              };
          }
        • Returns {
              [playerNumber: number]: {
                  ping: number;
                  playerId: string;
                  username: string;
              };
          }

          • [playerNumber: number]: {
                ping: number;
                playerId: string;
                username: string;
            }
            • ping: number
            • playerId: string
            • username: string
    • getPlayersWhoJustJoined: (() => number[])
        • (): number[]
        • Returns number[]

    • getPlayersWhoJustLeft: (() => number[])
        • (): number[]
        • Returns number[]

    • getVariableCustomMessageData: ((userMessageName, variable) => void)
        • (userMessageName, variable): void
        • Parameters

          • userMessageName: string
          • variable: Variable

          Returns void

    • handleAcknowledgeMessagesReceived: (() => void)
        • (): void
        • Returns void

    • handleChangeInstanceOwnerMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleChangeVariableOwnerMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleCustomMessagesReceived: (() => void)
        • (): void
        • Returns void

    • handleDestroyInstanceMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleEndGameMessagesReceived: (() => void)
        • (): void
        • Returns void

    • handleHeartbeatsReceived: (() => void)
        • (): void
        • Returns void

    • handleHeartbeatsToSend: (() => void)
        • (): void
        • Returns void

    • handleJustDisconnectedPeers: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleResumeGameMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleSavedUpdateMessages: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleUpdateGameMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleUpdateGameMessagesToSend: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleUpdateInstanceMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleUpdateSceneMessagesReceived: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • handleUpdateSceneMessagesToSend: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • hasAnyPlayerJustJoined: (() => boolean)
        • (): boolean
        • Returns boolean

    • hasAnyPlayerJustLeft: (() => boolean)
        • (): boolean
        • Returns boolean

    • hasCustomMessageBeenReceived: ((userMessageName) => undefined | false)
        • (userMessageName): undefined | false
        • Parameters

          • userMessageName: string

          Returns undefined | false

    • hasPlayerJustJoined: ((playerNumber) => boolean)
        • (playerNumber): boolean
        • Parameters

          • playerNumber: number

          Returns boolean

    • hasPlayerJustLeft: ((playerNumber) => boolean)
        • (playerNumber): boolean
        • Parameters

          • playerNumber: number

          Returns boolean

    • hasReceivedHeartbeatFromPlayer: ((playerNumber) => boolean)
        • (playerNumber): boolean
        • Parameters

          • playerNumber: number

          Returns boolean

    • isPlayerConnected: ((playerNumber) => boolean)
        • (playerNumber): boolean
        • Parameters

          • playerNumber: number

          Returns boolean

    • markPlayerAsDisconnected: ((__namedParameters) => void)
        • (__namedParameters): void
        • Parameters

          • __namedParameters: {
                peerId?: string;
                playerNumber: number;
                runtimeScene: RuntimeScene;
            }
            • Optional peerId?: string
            • playerNumber: number
            • runtimeScene: RuntimeScene

          Returns void

    • removePlayerWhoJustJoined: (() => void)
        • (): void
        • Returns void

    • removePlayerWhoJustLeft: (() => void)
        • (): void
        • Returns void

    • resendClearOrCancelAcknowledgedMessages: ((runtimeScene) => void)
        • (runtimeScene): void
        • Parameters

          Returns void

    • sendCustomMessage: ((userMessageName, userMessageData) => void)
        • (userMessageName, userMessageData): void
        • Parameters

          • userMessageName: string
          • userMessageData: any

          Returns void

    • sendDataTo: ((peerIds, messageName, data) => void)
        • (peerIds, messageName, data): void
        • Main function to send messages to other players, via P2P. Takes into account the simulation of network latency and packet loss.

          Parameters

          • peerIds: string[]
          • messageName: string
          • data: object

          Returns void

    • sendEndGameMessage: (() => void)
        • (): void
        • Returns void

    • sendResumeGameMessage: (() => void)
        • (): void
        • Returns void

    • sendVariableCustomMessage: ((userMessageName, variable) => void)
        • (userMessageName, variable): void
        • Parameters

          • userMessageName: string
          • variable: Variable

          Returns void