| name | SND Deliveroo Integration |
| description | Use this skill when implementing Grand Company delivery automation in SND macros using the Deliveroo plugin. Covers GC turn-ins, expert delivery, and supply provisioning. |
Deliveroo Integration for SND
This skill covers integration with the Deliveroo plugin for Grand Company delivery automation in SND macros.
Source: https://github.com/VeraNala/Deliveroo/blob/master/Deliveroo/External/DeliverooIpc.cs
Note: The original repository at https://git.carvel.li/liza/Deliveroo is archived and inaccessible. This documentation is verified from a GitHub mirror at VeraNala/Deliveroo.
Author: Liza Carvelli Purpose: "Better Grand Company Deliveries"
Prerequisites
-- Always check plugin availability first
if not HasPlugin("Deliveroo") then
yield("/echo [Script] Deliveroo plugin not available")
return
end
IPC API Reference
IMPORTANT: Deliveroo has a very minimal IPC API - only 3 endpoints exist. Most control is done via slash commands.
Verified IPC Methods (from source)
-- Check if turn-in is currently running
-- IPC Name: "Deliveroo.IsTurnInRunning"
IPC.Deliveroo.IsTurnInRunning() → boolean
IPC Events (Subscribe only - cannot call directly)
These are notification events that Deliveroo sends when state changes:
-- Event sent when turn-in starts
-- IPC Name: "Deliveroo.TurnInStarted"
-- (Cannot call - listen only)
-- Event sent when turn-in stops
-- IPC Name: "Deliveroo.TurnInStopped"
-- (Cannot call - listen only)
Chat Commands
Since Deliveroo's IPC is minimal, most control is done via slash commands:
-- Open Deliveroo window
yield("/deliveroo")
-- Start expert delivery (main use case)
yield("/deliveroo expert")
-- Stop current delivery operation
yield("/deliveroo stop")
Usage Patterns
Check if Turn-In is Running
function IsDeliverooRunning()
if not HasPlugin("Deliveroo") then
return false
end
local ok, result = pcall(function()
return IPC.Deliveroo.IsTurnInRunning()
end)
return ok and result
end
Start Expert Delivery via Command
function StartExpertDelivery()
if not HasPlugin("Deliveroo") then
yield("/echo [Script] Deliveroo not available")
return false
end
-- Use slash command - IPC doesn't have start method
yield("/deliveroo expert")
yield("/wait 1")
return true
end
Wait for Delivery Complete
function WaitForDeliveryComplete(timeout)
timeout = timeout or 300
local startTime = os.clock()
-- Initial wait for Deliveroo to start
yield("/wait 2")
while IsDeliverooRunning() and (os.clock() - startTime) < timeout do
yield("/wait 1")
end
return not IsDeliverooRunning()
end
Complete Delivery Workflow
function DoExpertDelivery(timeout)
timeout = timeout or 300
if not HasPlugin("Deliveroo") then
yield("/echo [Script] ERROR: Deliveroo not available")
return false
end
-- Check if already running
if IsDeliverooRunning() then
yield("/echo [Script] Deliveroo already running")
return WaitForDeliveryComplete(timeout)
end
-- Start via command
yield("/deliveroo expert")
yield("/wait 2")
-- Wait for completion
if WaitForDeliveryComplete(timeout) then
yield("/echo [Script] Expert delivery completed")
return true
else
yield("/echo [Script] Expert delivery timed out")
yield("/deliveroo stop")
return false
end
end
Stop Delivery
function StopDelivery()
-- Use slash command - IPC doesn't have stop method
yield("/deliveroo stop")
yield("/wait 0.5")
end
Integration with Other Plugins
Deliveroo is often used with AutoRetainer for automated GC turn-ins:
-- Example: Expert delivery after retainer runs
function DoGCTurnInsAfterRetainers()
-- Wait for retainer operations to complete first
while IPC.AutoRetainer.IsBusy() do
yield("/wait 5")
end
-- Do expert delivery
DoExpertDelivery(300)
end
GC Seal Information (Via Game Data)
Since Deliveroo doesn't expose seal information via IPC, use game data directly:
-- Get current GC seals from game
-- Note: This requires accessing game memory/addons, not Deliveroo IPC
-- Example using SND's built-in functions if available:
local seals = Player.GCSeals -- If this API exists in SND
Best Practices
- Use slash commands for control - Deliveroo's IPC is minimal (status check only)
- Only IsTurnInRunning is callable - Other methods in old docs were fabricated
- Add waits after commands - Slash commands need processing time
- Use timeouts when waiting for delivery completion
- Check plugin availability before any Deliveroo operations
What Deliveroo Does NOT Expose via IPC
The following methods were previously documented but DO NOT EXIST in the IPC:
- UseIPC.Deliveroo.IsBusy()IsTurnInRunning()instead- Not availableIPC.Deliveroo.GetTurnInStatus()- UseIPC.Deliveroo.StartExpertDelivery()/deliveroo expertcommand- UseIPC.Deliveroo.Stop()/deliveroo stopcommand- Not availableIPC.Deliveroo.Pause()- Not availableIPC.Deliveroo.Resume()- Not availableIPC.Deliveroo.GetItemFilter()- Not availableIPC.Deliveroo.SetItemFilter()- Not availableIPC.Deliveroo.GetGCRankRequirement()- Not availableIPC.Deliveroo.CanTurnInItem()- Not available via IPCIPC.Deliveroo.GetCurrentSeals()- Not available via IPCIPC.Deliveroo.GetMaxSeals()- Not available via IPCIPC.Deliveroo.GetSealCapForRank()
Verification History
- 2025-12-11: Verified against source code at VeraNala/Deliveroo (GitHub mirror)
- Source file:
Deliveroo/External/DeliverooIpc.cs - Finding: Only 3 IPC endpoints exist (1 callable method + 2 events)