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).
Scenes
| File | Description |
|---|---|
Scenes/Demo.unity | Complete 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:
| File | Description |
|---|---|
Abstractions/IFriendManager.cs | Interface for the main friend manager class |
Abstractions/INetworkFriendSystem.cs | Interface for network-specific friend system implementations |
Abstractions/IGameTypeHandler.cs | Interface for game type handlers |
Abstractions/IServerClient.cs | Interface for server communication |
Abstractions/BaseGameTypeHandler.cs | Base class for game type handlers |
Abstractions/NetworkBackendType.cs | Enum defining supported network backends |
Scripts: Managers
Core system scripts that handle all friend-related logic:
| File | Description |
|---|---|
Managers/FriendManager.cs | Main manager class - handles friends, requests, blocking, events |
Managers/FriendManagerSettings.cs | ScriptableObject for configurable settings |
Managers/FriendManagerInitializer.cs | Initializes the friend system with user authentication |
Scripts: Models
Data models representing friends, requests, and related information:
| File | Description |
|---|---|
Models/Friend.cs | Represents a friend with ID, name, status, and room info |
Models/FriendRequest.cs | Represents a friend request between users |
Models/FriendRequestStatus.cs | Enum: Pending, Accepted, Rejected, Cancelled |
Models/FriendStatus.cs | Enum: Online, Offline, InRoom, Away |
Models/FriendInvitation.cs | Represents a game room invitation |
Models/InvitationStatus.cs | Enum: Pending, Accepted, Declined, Expired |
Models/RoomInfo.cs | Information about a game room/session |
Models/BlockEntry.cs | Represents a blocked user entry |
Scripts: Networking
Network-specific implementations that adapt the friend system to different backends:
| Path | Description |
|---|---|
Networking/BaseNetworkFriendSystem.cs | Base class for network friend systems |
Networking/BaseCustomFriendSystem.cs | Base class for custom server implementations |
Networking/CustomBackendFriendSystem.cs | Main integration point for custom backends |
Networking/Photon/PhotonPunNativeFriendSystem.cs | Photon PUN native friends |
Networking/Photon/PhotonPunCustomFriendSystem.cs | Photon PUN with custom server |
Networking/Photon/PhotonFusionNativeFriendSystem.cs | Photon Fusion native friends |
Networking/Photon/PhotonFusionCustomFriendSystem.cs | Photon Fusion with custom server |
Networking/Mirror/MirrorCustomFriendSystem.cs | Mirror with custom server |
Networking/Unity/UnityNetcodeNativeFriendSystem.cs | Unity Netcode native |
Networking/Unity/UnityNetcodeCustomFriendSystem.cs | Unity Netcode with custom server |
Networking/FishNet/FishNetNativeFriendSystem.cs | FishNet native |
Networking/FishNet/FishNetCustomFriendSystem.cs | FishNet with custom server |
Networking/Server/ElderWorldStudioServerClient.cs | HTTP client for custom server |
Networking/Server/ElderWorldStudioWebSocketClient.cs | WebSocket client for real-time updates |
Networking/Server/ElderWorldStudioAuthHandler.cs | Authentication helper |
Networking/Server/ElderWorldStudioErrorHandler.cs | Error handling utilities |
Networking/Server/ElderWorldStudioLogger.cs | Logging utilities |
Networking/Server/ServerDTOs.cs | Data transfer objects for server communication |
Scripts: Game Types
Handlers for different game session types:
| File | Description |
|---|---|
GameTypes/GameTypeManager.cs | Manages and selects game type handlers |
GameTypes/GameTypeFactory.cs | Factory for creating game type handlers |
GameTypes/GameTypeSettings.cs | Base settings class for game types |
GameTypes/RoomBasedGameTypeHandler.cs | Handler for room-based games (lobbies, matches) |
GameTypes/OpenWorldGameTypeHandler.cs | Handler for open-world seamless games |
GameTypes/Examples/RoomBasedGameTypeSettings.cs | Example settings for room-based games |
GameTypes/Examples/OpenWorldGameTypeSettings.cs | Example settings for open-world games |
Scripts: UI
UI components for displaying and interacting with friends:
| File | Description |
|---|---|
UI/FriendListUI.cs | Main friend list panel controller |
UI/FriendListItemUI.cs | Individual friend row component |
UI/FriendRequestItemUI.cs | Friend request row component |
UI/FriendRequestsUI.cs | Friend requests panel controller |
UI/AddFriendUI.cs | Add friend dialog component |
Scripts: Editor
Editor utilities to help set up the friend system:
| File | Description |
|---|---|
Editor/FriendListEditorWindow.cs | Main editor window with tools |
Editor/FriendListQuickSetup.cs | Quick setup utilities |
Editor/FriendListSetupWizard.cs | Guided setup wizard |
Editor/FriendListUIGenerator.cs | UI hierarchy generator |
Editor/FriendListItemGenerator.cs | UI item generator |
Editor/FriendManagerSettingsInspector.cs | Custom inspector for settings |
Editor/FriendManagerInitializerInspector.cs | Custom inspector for initializer |
Editor/NetworkBackendValidator.cs | Backend configuration validator |
Scripts: Examples
Example implementations showing how to connect different networks:
| File | Description |
|---|---|
Examples/SimpleCustomConnection.cs | Example custom backend connection |
Examples/NetworkConnectionDebugUI.cs | Debug UI for network connections |
Examples/NetworkConnections/SimplePun2Connection.cs | Photon PUN example |
Examples/NetworkConnections/SimplePhotonFusionConnection.cs | Photon Fusion example |
Examples/NetworkConnections/SimpleMirrorConnection.cs | Mirror example |
Examples/NetworkConnections/SimpleUnityNetcodeConnection.cs | Unity Netcode example |
Examples/NetworkConnections/SimpleFishNetConnection.cs | FishNet example |
Prefabs
Ready-to-use UI prefabs for the friend system:
| Prefab | Description |
|---|---|
FriendListUI.prefab | Complete friend list panel with tabs for Friends, Requests, and Blocked |
FriendListItem.prefab | Single friend row showing avatar, name, status |
Friend List Item.prefab | Alternative naming style (space in name) |
FriendRequestItem.prefab | Friend request row with accept/reject buttons |
Friend Request Item.prefab | Alternative naming style |
InvitationItem.prefab | Game invitation row |
BlockedUserItem.prefab | Blocked user row with unblock option |
Resources
ScriptableObject assets for configuration:
| Asset | Description |
|---|---|
FriendManagerSettings.asset | Default settings for the friend system |
ServerConfig.asset | Server configuration asset |
Server Files (.Server)
The .Server folder contains complete server implementations. These are typically hidden in Unity but are included for deployment:
| Folder | Description |
|---|---|
.Server/websocket/ | Node.js server with WebSocket + REST API, SQLite database |
.Server/php/ | PHP REST API server, supports SQLite and MySQL |