propose_trade
Negotiate and preview Civilization VI trade deals, including gold, resources, open borders, cities, joint war, and peace terms, then send or test the AI's counter-offer.
Instructions
Propose a trade deal to another civilization.
Args:
other_player_id: The player ID (from get_diplomacy output)
offer_gold: Lump sum gold to give them
offer_gold_per_turn: Gold per turn to give them (30-turn duration)
offer_resources: Comma-separated resource types to offer, e.g. "RESOURCE_SILK,RESOURCE_TEA"
offer_favor: Diplomatic favor to offer
offer_open_borders: True to offer our open borders
request_gold: Lump sum gold to request from them
request_gold_per_turn: Gold per turn to request (30-turn duration)
request_resources: Comma-separated resource types to request
request_favor: Diplomatic favor to request from them
request_open_borders: True to request their open borders
request_cities: Comma-separated city IDs to demand from them (get them from
get_diplomacy / run_lua; a losing AI will cede cities to end a war)
offer_cities: Comma-separated city IDs of ours to hand over
make_peace: True to include a peace treaty. Required when at war — the
ceasefire is what you are paying with, and demanding cities for it is
the whole point of a war-ending deal.
joint_war_target: Player ID of a third civ to declare joint war against
mode: "send" to commit the deal, "test" to preview AI's counter-offer without committing
force: Override the pre-war gate for joint wars (NO_SIEGE_VS_WALLS —
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
same rule as send_diplomatic_action war declarations)
Examples: Gift 100 gold: offer_gold=100. Trade silk for 3 gpt: offer_resources="RESOURCE_SILK", request_gold_per_turn=3.
Mutual open borders: offer_open_borders=True, request_open_borders=True.
Test a deal first: mode="test" to see what the AI thinks is fair, then mode="send" to commit.
Ending a war on your terms: make_peace=True plus request_cities/request_resources.
Always run mode="test" first — the AI's willingness to cede a city swings hard with
war score, and the test call shows what it considers fair without committing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | send | |
| force | No | ||
| make_peace | No | ||
| offer_gold | No | ||
| offer_favor | No | ||
| force_reason | No | ||
| offer_cities | No | ||
| request_gold | No | ||
| request_favor | No | ||
| request_cities | No | ||
| offer_resources | No | ||
| other_player_id | Yes | ||
| joint_war_target | No | ||
| request_resources | No | ||
| offer_open_borders | No | ||
| offer_gold_per_turn | No | ||
| request_open_borders | No | ||
| request_gold_per_turn | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |