First, make a backup of export_descr_buildings.txt
Open export_descr_buildings.txt and Ctrl+F for these lines
Code:
levels port shipwright dockyard naval_drydock
You should see something like
Code:
building port
{
levels port shipwright dockyard naval_drydock
{
port city requires factions { all, } and not building_present govslave and building_present govrome or building_present govcarthage or building_present govkh or building_present govhayasdan or building_present govparthia or building_present govaedui or building_present govarverni or building_present govcasse or building_present govluso or building_present govsweboz or building_present govgetai or building_present govsaba or building_present govsauro or building_present_min_level govnumidia numidia3 or building_present govgandhara or building_present govlugia or building_present govbospor or building_present govarevaci or building_present govboii or building_present govnabatu or building_present_min_level govsaka saka_admin or building_present_min_level govbaktria baktria2 or building_present_min_level govmakedonia makedonia2 or building_present_min_level govpergamon pergamon2 or building_present_min_level govptolemaioi ptolemaioi2 or building_present_min_level govepeiros epeiros2 or building_present_min_level govpontos pontos2 or building_present_min_level govseleukid seleukid1 or building_present govallied
{
capability
{
recruit_pool "generic ship germanic" 1 0.05 1 0 requires factions { cul_1, cul_2, cul_3, cul_4, cul_5, f_sauromatae, f_saka, cul_7, } and hidden_resource baltic
recruit_pool "generic ship germanic" 1 0.05 1 0 requires factions { cul_1, cul_2, cul_3, cul_4, cul_5, f_sauromatae, f_saka, cul_7, } and not hidden_resource celtic and hidden_resource germania
recruit_pool "generic ship pontomora" 1 0.05 1 0 requires factions { cul_1, cul_2, cul_3, cul_4, cul_5, f_sauromatae, f_saka, cul_7, } and not hidden_resource liburnes and hidden_resource celtic or hidden_resource briton or hidden_resource lusitan
recruit_pool "generic ship pontomora" 1 0.05 1 0 requires factions { cul_1, cul_2, cul_3, cul_4, cul_5, f_sauromatae, f_saka, cul_7, } and hidden_resource celtic and hidden_resource liburnes and not region_religion rel_g 30 and not region_religion rel_h 30
recruit_pool "generic ship pontomora" 1 0.05 1 0 requires factions { cul_5, } and hidden_resource iberia or hidden_resource dacia
recruit_pool "generic ship pontomora" 1 0.05 1 0 requires factions { cul_1, cul_2, cul_3, cul_4, f_sauromatae, f_saka, cul_7, } and hidden_resource dacia and not region_religion rel_h 30 and not region_religion rel_g 30
recruit_pool "generic ship pontomora" 1 0.05 1 0 requires factions { cul_5, f_sauromatae, f_saka, } and hidden_resource sarmatian
That's the code for the capabilities that ports offer you. Here is the code to copy and paste into the capabilities brackets
Code:
;;; Indian Ocean trade
income_bonus bonus 500 requires factions { all, } and not hidden_resource hellen1 and hidden_resource egypt or hidden_resource ethiopia
income_bonus bonus 500 requires factions { all, } and not hidden_resource hellen1 and not hidden_resource daha and not hidden_resource horde_target and hidden_resource eastern
income_bonus bonus 500 requires factions { all, } and hidden_resource arabian and not hidden_resource eastern
income_bonus bonus 500 requires factions { all, } and hidden_resource indo
You should result in something like this
Code:
building port
{
levels port shipwright dockyard naval_drydock
{
port city requires factions { all, } and not building_present govslave and building_present govrome or building_present govcarthage or building_present govkh or building_present govhayasdan or building_present govparthia or building_present govaedui or building_present govarverni or building_present govcasse or building_present govluso or building_present govsweboz or building_present govgetai or building_present govsaba or building_present govsauro or building_present_min_level govnumidia numidia3 or building_present govgandhara or building_present govlugia or building_present govbospor or building_present govarevaci or building_present govboii or building_present govnabatu or building_present_min_level govsaka saka_admin or building_present_min_level govbaktria baktria2 or building_present_min_level govmakedonia makedonia2 or building_present_min_level govpergamon pergamon2 or building_present_min_level govptolemaioi ptolemaioi2 or building_present_min_level govepeiros epeiros2 or building_present_min_level govpontos pontos2 or building_present_min_level govseleukid seleukid1 or building_present govallied
{
capability
{
;;; Indian Ocean trade
income_bonus bonus 500 requires factions { all, } and not hidden_resource hellen1 and hidden_resource egypt or hidden_resource ethiopia
income_bonus bonus 500 requires factions { all, } and not hidden_resource hellen1 and not hidden_resource daha and not hidden_resource horde_target and hidden_resource eastern
income_bonus bonus 500 requires factions { all, } and hidden_resource arabian and not hidden_resource eastern
income_bonus bonus 500 requires factions { all, } and hidden_resource indo
What this does is offer a lucrative 500 income bonus to all Red Sea, Persian Gulf, and Indian Ocean provinces. The above code snippet is just for level 1 ports btw. You should copy and paste the Indian Ocean trade lines into the shipwright, dockyard, and naval_drydock capabilities as well. Here's the one for shipwright
Code:
shipwright city requires factions { all, } and not building_present hinterland_pastoral_city and not building_present govslave and building_present_min_level govsaka saka_autsat or building_present govrome or building_present govcarthage or building_present govkh or building_present govhayasdan or building_present govparthia or building_present govaedui or building_present govarverni or building_present govcasse or building_present govluso or building_present govsweboz or building_present govgetai or building_present govsaba or building_present govsauro or building_present_min_level govnumidia numidia4 or building_present govgandhara or building_present govlugia or building_present govbospor or building_present govarevaci or building_present govboii or building_present govnabatu or building_present_min_level govbaktria baktria2 or building_present_min_level govmakedonia makedonia2 or building_present_min_level govpergamon pergamon2 or building_present_min_level govptolemaioi ptolemaioi2 or building_present_min_level govepeiros epeiros2 or building_present_min_level govpontos pontos3 or building_present_min_level govseleukid seleukid1 or building_present_min_level govallied oligone
{
capability
{
;;; Indian Ocean trade
income_bonus bonus 1000 requires factions { all, } and not hidden_resource hellen1 and hidden_resource egypt or hidden_resource ethiopia
income_bonus bonus 1000 requires factions { all, } and not hidden_resource hellen1 and not hidden_resource daha and not hidden_resource horde_target and hidden_resource eastern
income_bonus bonus 1000 requires factions { all, } and hidden_resource arabian and not hidden_resource eastern
income_bonus bonus 1000 requires factions { all, } and hidden_resource indo
Notice that the bonus was upgraded to 1000. You can pick and choose which values to use for the income bonus for each level of ports, and be generous! The trade from India to Egypt and other Middle Eastern destinations was historically LUCRATIVE as hell. The Ptolemies historically also failed to tax the trade properly, but the Romans sure did. Watch this video for additional history on how the Indian Ocean trade basically bankrolled the Roman Empire https://www.youtube.com/watch?v=BaCaFpAtm48 .
The result of this simple savegame compatible change? The Sabaeans will swim in money, while the Ptolemies now have a real financial incentive to conquer and tidy up their southern lands. The Seleucids and Taksashilans meanwhile enjoy a little extra cash from their Persian Gulf provinces.