Package Contents

Universal Friend List includes everything you need to add comprehensive friend functionality to your multiplayer Unity game. This page details every folder and file in the package.

Folder Structure

All assets ship under Assets/BlinkBox/FriendList/. Server samples live in .Server (hidden in Unity but included for deployment).

BlinkBox/FriendList/ ├── Scenes/ └── Demo.unity ├── Scripts/ ├── Abstractions/ Interfaces and base classes ├── Managers/ Core system scripts ├── Models/ Friend, request, and invitation models ├── Networking/ Network-specific implementations ├── GameTypes/ Game type handlers ├── UI/ UI components ├── Editor/ Editor utilities └── Examples/ Example implementations ├── Prefabs/ ├── FriendListUI.prefab ├── FriendListItem.prefab ├── FriendRequestItem.prefab ├── InvitationItem.prefab └── BlockedUserItem.prefab ├── Resources/ ├── FriendManagerSettings.asset └── ServerConfig.asset ├── Content/ └── UI/ UI textures and icons ├── Documentation/ This documentation wiki └── .Server/ ├── websocket/ Node.js WebSocket server └── php/ PHP REST API server

Scenes

FileDescription
Scenes/Demo.unityComplete demo scene showing all friend features working together

The Demo scene is fully configured and ready to test. Use it as a reference for your own implementation.

Scripts: Abstractions

These define the contracts and enums used throughout the system:

FileDescription
Abstractions/IFriendManager.csInterface for the main friend manager class
Abstractions/INetworkFriendSystem.csInterface for network-specific friend system implementations
Abstractions/IGameTypeHandler.csInterface for game type handlers
Abstractions/IServerClient.csInterface for server communication
Abstractions/BaseGameTypeHandler.csBase class for game type handlers
Abstractions/NetworkBackendType.csEnum defining supported network backends

Scripts: Managers

Core system scripts that handle all friend-related logic:

FileDescription
Managers/FriendManager.csMain manager class - handles friends, requests, blocking, events
Managers/FriendManagerSettings.csScriptableObject for configurable settings
Managers/FriendManagerInitializer.csInitializes the friend system with user authentication

Scripts: Models

Data models representing friends, requests, and related information:

FileDescription
Models/Friend.csRepresents a friend with ID, name, status, and room info
Models/FriendRequest.csRepresents a friend request between users
Models/FriendRequestStatus.csEnum: Pending, Accepted, Rejected, Cancelled
Models/FriendStatus.csEnum: Online, Offline, InRoom, Away
Models/FriendInvitation.csRepresents a game room invitation
Models/InvitationStatus.csEnum: Pending, Accepted, Declined, Expired
Models/RoomInfo.csInformation about a game room/session
Models/BlockEntry.csRepresents a blocked user entry

Scripts: Networking

Network-specific implementations that adapt the friend system to different backends:

PathDescription
Networking/BaseNetworkFriendSystem.csBase class for network friend systems
Networking/BaseCustomFriendSystem.csBase class for custom server implementations
Networking/CustomBackendFriendSystem.csMain integration point for custom backends
Networking/Photon/PhotonPunNativeFriendSystem.csPhoton PUN native friends
Networking/Photon/PhotonPunCustomFriendSystem.csPhoton PUN with custom server
Networking/Photon/PhotonFusionNativeFriendSystem.csPhoton Fusion native friends
Networking/Photon/PhotonFusionCustomFriendSystem.csPhoton Fusion with custom server
Networking/Mirror/MirrorCustomFriendSystem.csMirror with custom server
Networking/Unity/UnityNetcodeNativeFriendSystem.csUnity Netcode native
Networking/Unity/UnityNetcodeCustomFriendSystem.csUnity Netcode with custom server
Networking/FishNet/FishNetNativeFriendSystem.csFishNet native
Networking/FishNet/FishNetCustomFriendSystem.csFishNet with custom server
Networking/Server/ElderWorldStudioServerClient.csHTTP client for custom server
Networking/Server/ElderWorldStudioWebSocketClient.csWebSocket client for real-time updates
Networking/Server/ElderWorldStudioAuthHandler.csAuthentication helper
Networking/Server/ElderWorldStudioErrorHandler.csError handling utilities
Networking/Server/ElderWorldStudioLogger.csLogging utilities
Networking/Server/ServerDTOs.csData transfer objects for server communication

Scripts: Game Types

Handlers for different game session types:

FileDescription
GameTypes/GameTypeManager.csManages and selects game type handlers
GameTypes/GameTypeFactory.csFactory for creating game type handlers
GameTypes/GameTypeSettings.csBase settings class for game types
GameTypes/RoomBasedGameTypeHandler.csHandler for room-based games (lobbies, matches)
GameTypes/OpenWorldGameTypeHandler.csHandler for open-world seamless games
GameTypes/Examples/RoomBasedGameTypeSettings.csExample settings for room-based games
GameTypes/Examples/OpenWorldGameTypeSettings.csExample settings for open-world games

Scripts: UI

UI components for displaying and interacting with friends:

FileDescription
UI/FriendListUI.csMain friend list panel controller
UI/FriendListItemUI.csIndividual friend row component
UI/FriendRequestItemUI.csFriend request row component
UI/FriendRequestsUI.csFriend requests panel controller
UI/AddFriendUI.csAdd friend dialog component

Scripts: Editor

Editor utilities to help set up the friend system:

FileDescription
Editor/FriendListEditorWindow.csMain editor window with tools
Editor/FriendListQuickSetup.csQuick setup utilities
Editor/FriendListSetupWizard.csGuided setup wizard
Editor/FriendListUIGenerator.csUI hierarchy generator
Editor/FriendListItemGenerator.csUI item generator
Editor/FriendManagerSettingsInspector.csCustom inspector for settings
Editor/FriendManagerInitializerInspector.csCustom inspector for initializer
Editor/NetworkBackendValidator.csBackend configuration validator

Scripts: Examples

Example implementations showing how to connect different networks:

FileDescription
Examples/SimpleCustomConnection.csExample custom backend connection
Examples/NetworkConnectionDebugUI.csDebug UI for network connections
Examples/NetworkConnections/SimplePun2Connection.csPhoton PUN example
Examples/NetworkConnections/SimplePhotonFusionConnection.csPhoton Fusion example
Examples/NetworkConnections/SimpleMirrorConnection.csMirror example
Examples/NetworkConnections/SimpleUnityNetcodeConnection.csUnity Netcode example
Examples/NetworkConnections/SimpleFishNetConnection.csFishNet example

Prefabs

Ready-to-use UI prefabs for the friend system:

PrefabDescription
FriendListUI.prefabComplete friend list panel with tabs for Friends, Requests, and Blocked
FriendListItem.prefabSingle friend row showing avatar, name, status
Friend List Item.prefabAlternative naming style (space in name)
FriendRequestItem.prefabFriend request row with accept/reject buttons
Friend Request Item.prefabAlternative naming style
InvitationItem.prefabGame invitation row
BlockedUserItem.prefabBlocked user row with unblock option

Resources

ScriptableObject assets for configuration:

AssetDescription
FriendManagerSettings.assetDefault settings for the friend system
ServerConfig.assetServer configuration asset

Server Files (.Server)

The .Server folder contains complete server implementations. These are typically hidden in Unity but are included for deployment:

FolderDescription
.Server/websocket/Node.js server with WebSocket + REST API, SQLite database
.Server/php/PHP REST API server, supports SQLite and MySQL