Files
QuickTransfer/README.md
T

229 lines
9.7 KiB
Markdown

# QuickTransfer - FFXIV Quick Transfer Plugin
A Dalamud plugin for Final Fantasy XIV that adds quick inventory actions via the game's existing context menus:
- **Shift + Right Click**: quick transfers (including Quick Use on usable items when no other inventories are open, vendor sell when shop is open, and Hand Over to NPCs in quest/dialogue)
- **Ctrl + Right Click**: armoury-mode transfers (when a special container is open)
- **Alt + Right Click**: split a stack in half
## Features
- **Quick Transfer**: Hold Shift and right-click an item to automatically trigger the matching context menu action
- **Quick Use**: When no other inventories (saddlebag, retainer, company chest, trade, vendor) are open, Shift + Right Click on a usable item (potions, food, etc.) auto-selects **Use**
- **Vendor Quick Sell**: With a vendor shop open, Shift + Right Click auto-selects **Sell**. With **Auto-confirm vendor sell** enabled, quantity dialogs and "Are you certain?" confirmations are auto-filled and confirmed
- **Trade Window Support**: Shift + Right Click items from inventory into Trade window with auto-fill max quantity
- **Company Chest**: Shift + Right Click to deposit/withdraw when Free Company Chest is open; middle-click runs organize (stack + compact)
- **Hand Over to NPCs**: During quest or dialogue that requires handing over items, Shift + Right Click on the item to auto-select **Hand Over**
- **Armoury Mode**: Hold Ctrl and right-click to prioritize armoury actions while a special container is open
- **Split Half**: Hold Alt and right-click to split a stack and auto-fill half
- **Middle-Click Sort**: Middle-click an item to auto-select **Sort** (or organize in FC chest)
- **Cooldown Protection**: Built-in cooldown to prevent accidental double-moves
- **Debug Mode**: For troubleshooting and development (disabled by default)
## Installation
### Prerequisites
1. **XIVLauncher**: Download and install from [goatcorp.github.io](https://goatcorp.github.io/)
2. **Dalamud**: Enable plugins in XIVLauncher settings
3. **Dev Plugin Loading**: Enable "Dev Plugin Locations" in Dalamud settings for development builds
4. **.NET SDK**: Install the .NET 10 SDK (this project targets `net10.0-windows`)
### Installing the Plugin
#### Method 1: Custom Dalamud repository (recommended)
1. In-game, open **Dalamud Settings****Experimental**
2. Under **Custom Plugin Repositories**, add this URL:
- `https://raw.githubusercontent.com/Knack117/QuickTransfer/main/pluginmaster.json`
3. Click **Save**
4. Type `/xlplugins` in-game, search for **QuickTransfer**, and click **Install**
#### Method 2: Development build (local)
1. Clone or download this repository
2. Open the solution in Visual Studio 2022
3. Build the solution (Release configuration)
4. In-game, open Dalamud Settings → Experimental → Dev Plugin Locations
5. Add the path to the compiled DLL (typically `bin/Release/QuickTransfer.dll` or `bin/Debug/QuickTransfer.dll`)
6. Type `/xlplugins` in-game and enable QuickTransfer
## Usage
### Quick Transfer (Shift + Right Click)
The plugin only clicks **existing** context menu options when they are available:
- **Inventory + Chocobo Saddlebags**
- Inventory → **Add All to Saddlebag**
- Saddlebags → **Remove All from Saddlebag**
- **Armoury Chest + Chocobo Saddlebags**
- Armoury → **Add All to Saddlebag**
- Saddlebags → **Remove All from Saddlebag**
- **Inventory + Armoury Chest**
- (Gear) Inventory → **Place in Armoury Chest**
- Armoury → **Return to Inventory**
- **Trade Window**
- Inventory → **Trade** (auto-fills and confirms max quantity for stackable items)
- **Vendor Shop**
- With a vendor shop open, Shift + Right Click → **Sell**. Enable **Auto-confirm vendor sell** to auto-fill quantity and click OK on "Are you certain?" dialogs.
- **Company Chest (Free Company Chest)**
- Shift + Right Click Inventory/Armoury → deposit; Shift + Right Click Company Chest → **Remove** (withdraw)
- **Hand Over to NPCs (quest/dialogue)**
- When an NPC is asking for items (e.g. quest turn-in), Shift + Right Click the item → **Hand Over**
- **Inventory only (no other panels open)**
- Shift + Right Click on a usable item (potions, food, etc.) → **Use**
If an option is not present for the clicked item, **nothing happens**.
### Armoury Mode (Ctrl + Right Click)
- While a **Saddlebag**, **Retainer**, or **Company Chest** is open, **Ctrl + Right Click** will prioritize:
- Inventory gear → **Place in Armoury Chest**
- Armoury gear → **Return to Inventory**
### Split Stack (Alt + Right Click)
- **Alt + Right Click** a **stackable** item to select the existing **Split** context menu action.
- If **Auto-confirm quantity prompts** is enabled, QuickTransfer will enter **half** and confirm automatically.
### Middle-Click Sort / Organize (MMB)
- For inventories that include a **Sort** entry in the item context menu, **middle-click an item** to auto-select **Sort** (without showing the menu).
- In the **Free Company Chest**, item context menus do not include Sort, so **middle-click** will run an **organize pass** (auto-stack + compact).
## Configuration Options
| Setting | Description | Default |
|---------|-------------|---------|
| Enabled | Enable/disable the plugin | True |
| Debug Mode | Log transfer attempts to chat | False |
| Transfer Cooldown | Milliseconds between transfers | 200 |
| Enable Middle-Click Sort | Enable MMB sort behavior | True |
| Enable Company Chest | Enable FC chest helpers | True |
| Company Chest: Middle-Click Organize | Enable MMB organize (stack+compact) in FC chest | True |
| Auto-confirm quantity prompts | Auto-fill and confirm InputNumeric prompts (Split / FC chest) | True |
| Enable Vendor Quick Sell | Shift+RClick auto-selects "Sell" when vendor is open | True |
| Enable Quick Use | Shift+RClick auto-selects "Use" on usable items when no other inventories are open | True |
| Auto-confirm vendor sell | Auto-fill quantity and click OK on sell dialogs ("How many?", "Are you certain?") | True |
## Development
### Setting Up Development Environment
1. Install Visual Studio 2022 with the .NET 10 SDK
2. Clone this repository
3. Open `QuickTransfer.csproj`
4. Build the project
### Building
```bash
# Build Debug
dotnet build --configuration Debug
# Build Release
dotnet build --configuration Release
```
Release build produces `bin/Release/QuickTransfer/latest.zip` for distribution.
### Testing
1. Enable "Dev Plugin Locations" in Dalamud settings
2. Add the path to your build output directory
3. In-game, the plugin will automatically reload when you rebuild
### Project Structure
```
QuickTransfer/
├── QuickTransfer.cs # Main plugin class
├── QuickTransfer.csproj # Project file
├── QuickTransferWindow.cs # Configuration UI
├── ContextMenuHandler.cs # Context menu matching and selection
├── InventoryHelpers.cs # Inventory/addon detection
├── DragDropHelpers.cs # Drag-drop parsing
├── AtkValueHelpers.cs # AtkValue and addon utilities
├── pluginmaster.json # Custom repository metadata (for Dalamud)
└── README.md # This file
```
### Adding New Features
1. Fork the repository
2. Create a feature branch
3. Implement your changes
4. Test thoroughly
5. Submit a pull request
## Troubleshooting
### Plugin Not Loading
- Ensure Dalamud is properly installed
- Check that you're using the correct .NET version
- Verify the DLL path is correct in Dev Plugin Locations
### Transfers Not Working
- Make sure the plugin is enabled
- Check that you have both source and target inventories open (or the correct container for the action)
- Ensure the target inventory has space
- Try increasing the transfer cooldown
### Game Crashes
- Disable debug mode for normal play
- Reduce the transfer cooldown if set too low
- Report bugs with detailed steps
### Debug Mode
Enable Debug Mode to see transfer attempts in chat:
```
[QuickTransfer] (Shift+RClick) Selected context action 'Remove All from Saddlebag' (idx=0) via OpenForItemSlot.
```
## Compatibility
- **Game Version**: Tested on FFXIV 7.0+ (Dawntrail)
- **Dalamud Version**: Uses `Dalamud.NET.Sdk` (targets your installed Dalamud)
- **.NET Version**: .NET 10.0 Windows (`net10.0-windows`)
## Contributing
Contributions are welcome! Please read the contributing guidelines before submitting pull requests.
### Reporting Issues
1. Check existing issues to avoid duplicates
2. Include steps to reproduce
3. Include plugin version and game version
4. Include any relevant logs
## License
This plugin is licensed under the MIT License - see the `LICENSE` file for details.
## Credits
- **goatcorp**: For creating XIVLauncher and Dalamud
- **Dalamud Community**: For the extensive plugin ecosystem
- **Contributors**: Thanks to everyone who has contributed to this project
## Changelog
### Version 1.0.5
- **New**: Vendor Quick Sell — Shift + Right Click at a vendor shop auto-selects **Sell**
- **New**: Auto-confirm vendor sell dialogs — auto-fill quantity ("How many to sell?") and click OK on "Are you certain you wish to sell it?" (unique/untradable items)
- README and configuration table updated for all current options
### Version 1.0.4
- **New**: Trade window support — Shift + Right Click items from inventory into Trade window
- **New**: Auto-fill and confirm max quantity when trading stackable items
- Trade window actions work independently of Company Chest settings
### Version 1.0.3
- Fix: inventory **Alt+RightClick Split** now reliably auto-fills **half** (including InventoryExpansion / localized prompts)
- Change: **Debug Mode is disabled by default** (and migrated off on update)
### Version 1.0.0
- Initial release
- Shift+Right-Click context menu automation for Inventory / Armoury / Saddlebags