Wiki

trigger · deal_completion

Definition

  • Supported scope:PURCHASE_CONTRACT
  • Supported target:none

Description

Check value of purchase contract completion. Example: deal_completition < 0.6

Hands-On Notes

Hands-on notes are AI-generated and checked against the vanilla command vocabulary — treat them as a starting point, not authoritative reference. The definition above is the game's own documentation.

Hands-On Usage

deal_completion is commonly used to monitor the fulfillment progress of arms trade contracts. Typical applications include triggering diplomatic penalties, canceling contracts, or other logic when a contract is nearing expiration or delivery is insufficient. The typical use case is within an event or decision in the PURCHASE_CONTRACT scope, where you check whether the buyer has received a sufficient percentage of ordered equipment to decide whether to allow contract renewal or force termination.

# Within a purchase contract scope, cancel the contract if completion is below 60%
cancel_purchase_contract = {
    limit = {
        deal_completion < 0.6
    }
}

Synergy

  • [cancel_purchase_contract](/wiki/effect/cancel_purchase_contract): When deal_completion detects insufficient completion, directly cancel the contract—this is the most straightforward follow-up action.
  • [buyer](/wiki/trigger/buyer): Filter for a specific buyer before checking completion, avoiding blanket progress checks across all contracts.
  • [seller](/wiki/trigger/seller): Combined with seller, allows you to distinguish contracts from different suppliers and precisely control completion checks for only a specific seller's contracts.
  • [contract_contains_equipment](/wiki/trigger/contract_contains_equipment): First confirm the contract involves a specific equipment type, then use deal_completion to check delivery progress for that equipment type, resulting in more robust logic.

Common Pitfalls

  1. Incorrect scope placement: deal_completion is only valid within the PURCHASE_CONTRACT scope. If written directly in a country scope (such as in the top-level trigger block of a country_event), it will silently fail or throw an error. You must first enter the correct scope using a contract iteration command.
  2. Comparing with integers instead of decimals: Completion is a decimal ratio from 0 to 1. Beginners often mistakenly write deal_completion < 60 with an integer, causing the condition to always be true or always false. Always use floating-point values in the 0.01.0 range.