# Forge Interaction Module ## Overview The Interaction module provides a comprehensive player interaction system for the Forge client. It manages how players engage with objects, NPCs, items, and other interactive elements in the environment through a dynamic and context-sensitive interface. ## Dependencies - forge_client_main ## Authors - J. Schmidt - Creedcoder - IDSolutions ## Features ### Interaction System 1. **Interaction Initialization** (`fnc_initInteraction.sqf`) - Initializes the interaction system - Sets up interaction buttons and items - Configures team coordination settings - Manages virtual arsenal integration 2. **Interaction Interface** - **Open Interaction** (`fnc_openInteraction.sqf`) - Opens the interaction menu - Displays available actions - Manages button visibility - Handles action execution - **Interaction Action** (`fnc_interactionAction.sqf`) - Processes selected actions - Executes interaction commands - Manages action feedback - Handles interface updates 3. **Available Interactions** - **Player Interactions** - Give Cash - Add Contact - Access ATM - Access CPOF (Company Point of Finance) - Take Cash - Open Locker - Access Store - Open Garage - Virtual Armory (if enabled) - Virtual Garage (if enabled) 4. **Team Coordination** - Company garage access - Team-specific interactions - Permission-based actions - Organization integration ### User Interface 1. **Interaction Menu** - Dynamic button display - Context-sensitive actions - Distance-based availability - Permission-based options 2. **Control Elements** - Action buttons - Status indicators - Feedback messages - Error handling ## Event Handlers The module uses several event handlers for initialization and execution: - `XEH_preInit.sqf`: Pre-initialization setup - `XEH_postInit.sqf`: Post-initialization tasks - `XEH_preStart.sqf`: Pre-start configuration - `XEH_postInit_client.sqf`: Client-specific post-initialization - `XEH_preInit_server.sqf`: Server-specific pre-initialization ## Usage To use the interaction module: 1. Ensure the module is properly loaded in your mission 2. Access interactions using the configured key (default: TAB) 3. Interact with objects and players: ```sqf // Open interaction menu [] call forge_client_interaction_fnc_openInteraction; // Initialize interaction system [] call forge_client_interaction_fnc_initInteraction; ``` 4. Monitor interaction feedback and results ## Configuration The module can be configured through the main Forge client configuration: ```cpp // Interaction key (default: TAB) interactionKey = 15; // Team coordination mode FORGE_Team_Coord = 1; // Virtual arsenal enable FORGE_VA_Enable = 1; ``` ## Debugging Debug mode can be enabled by uncommenting the following in `script_component.hpp`: ```cpp #define DEBUG_MODE_FULL ``` ## Version Information Version information is managed through the main Forge client system configuration. ## Technical Details - Dynamic interaction system - Context-sensitive actions - Distance-based availability - Permission management - Team coordination - Virtual arsenal integration - Error handling - User feedback - Interface management - Action validation - State tracking - Event system integration