File: game.ruleset

package info (click to toggle)
freeciv 3.2.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 286,492 kB
  • sloc: ansic: 484,452; cpp: 37,766; sh: 10,374; makefile: 7,425; python: 2,938; xml: 652; sed: 11
file content (767 lines) | stat: -rw-r--r-- 30,975 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
; Modifying this file:
; You should not modify this file except to make bugfixes or
; for other "maintenance".  If you want to make custom changes,
; you should create a new datadir subdirectory and copy this file
; into that directory, and then modify that copy.  Then use the
; command "rulesetdir <mysubdir>" in the server to have freeciv
; use your new customized file.

; Note that the freeciv AI may not cope well with anything more
; than minor changes.

[datafile]
description = "Multiplayer game rules for Freeciv"
options = "+Freeciv-3.2-ruleset web-compatible"
format_version = 30

; This section contains meta information for freeciv-ruledit to recreate the ruleset
; file in a form wanted. These have no in-game effect whatsoever
[ruledit]

; Which file to read description in from.
description_file = "multiplayer/README.multiplayer"

[about]
; Ruleset name
name = _("Multiplayer ruleset")

; There`s no separate versioning in rulesets part of main freeciv distribution
;version = ""

; When about to migrate ruleset under a new name in the future version, set
; alt_dir to the name of that future directory. Then savegames saved with this
; version of freeciv can find the ruleset from the correct place when loading
; the savegame to the future version.
;alt_dir = ""

; Summary of the ruleset
; /* TRANS: In the client, this is displayed alongside the contents of
;    README.multiplayer, which are not localized. */
summary = _("\
You are playing Freeciv with rules designed for multiplayer gaming. \
The biggest differences from the classic ruleset are that trade routes \
are disabled, and that most wonders can be built once by each player, \
and affect only cities on the same continent. A full description of \
the differences from the classic ruleset can be found in README.multiplayer.\
")

; Detailed description
; When updating this, update also description_file in [ruledit] section to match
description = *multiplayer/README.multiplayer*

; What capabilities ruleset provides for the scenarios.
; See doc/README.rulesets for definitions of official capabilities
; std-terrains         - At least standard set of terrains
capabilities = "std-terrains"

[options]
global_init_techs = ""
global_init_buildings = "Palace"

[tileset]
; If preferred tileset is set, clients that support the feature will suggest
; using that tileset with the ruleset.
; preferred = ""

[soundset]
; If preferred soundset is set, clients that support the feature will suggest
; using that soundset with the ruleset.
; preferred = ""

[musicset]
; If preferred musicset is set, clients that support the feature will suggest
; using that musicset with the ruleset.
; preferred = ""

[civstyle]
; Value added to city pollution
base_pollution   = -20

; Cost in luxuries of making one citizen happier
happy_cost       = 2

; Cost in food of upkeeping a single citizen
food_cost        = 2

; Parameters used to generalize the calculation of city granary size:
;
; granary_food_ini is a list of up to 24 integers.
;
;   if city_size <= num_inis:
;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
;   if city_size > num_inis;
;     city_granary_size = (granary_food_ini[num_inis] +
;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
granary_food_ini = 20
granary_food_inc = 10

; City center minimum outputs
min_city_center_food    = 1
min_city_center_shield  = 1
min_city_center_trade   = 0

; Square of initial city radius
init_city_radius_sq     = 5

; Square of initially visible radius (true distance).
init_vis_radius_sq	= 5

; A base bribe cost, modified heavily by other factors
base_bribe_cost  = 750

; Barbarian leader ransom in gold. The ransom is taken from
; the victim (typically a barbarian player), and it`s possible
; they cannot pay this in full.
ransom_gold      = 100

; Number of veteran levels lost when upgrading a unit
upgrade_veteran_loss     = 0

; Number of veteran levels lost when auto-upgrading a unit
autoupgrade_veteran_loss = 0

; Whether player gets to select which terrain improvement to pillage.
pillage_select           = TRUE

; Whether one can steal a tech for which prereqs are not known
tech_steal_allow_holes    = TRUE
; Whether one can get a tech for which prereqs are not known via
; diplomatic trading
tech_trade_allow_holes    = TRUE
; ...and whether one can lose a tech which is prereq for another known
; tech via trade, if techlost_donor is nonzero
tech_trade_loss_allow_holes = TRUE
; Whether one can get a tech for which prereqs are not known via
; parasite effect (Great Library)
tech_parasite_allow_holes = TRUE
; Whether one can lose a tech which is prereq for another known tech
; due to negative bulbs, if techlossforgiveness allows loss
tech_loss_allow_holes     = TRUE

; Whether civil war is possible at all
civil_war_enabled        = TRUE

; How many percents each celebrating city affects chance of civil war
civil_war_bonus_celebrating = -5

; How many percents each unhappy city affects chance of civil war
civil_war_bonus_unhappy     = 5

; Comma separated list of things to happen, in addition to death
; of owner, when gameloss unit dies
; "CivilWar"   - Part of the empire remains, controlled by a new player
; "Barbarians" - Depending on if there`s also "CivilWar", all or part
;                or half of the dead players empire gets under barbarian
;                control.
; "Loot"       - Player who killed the gameloss unit gets loot:
;                Partial map, gold, techs, cities
gameloss_style           = ""

; Whether units may safely paradrop to transport on non-native terrain
paradrop_to_transport    = FALSE

; Method of paying unit and improvement gold upkeep
; "City" -   The player`s total gold must be non-negative after paying upkeep
;            costs associated with each city. If for any city the player`s
;            gold is negative, random buildings in the city are sold off. If
;            the gold is still negative, then supported units with gold upkeep
;            are disbanded.
; "Mixed" -  In the first step, the player`s total gold must be non-negative
;            after paying upkeep for all buildings within a city. If for any
;            city the player`s gold is negative, random buildings in the city
;            are sold off.
;            In the second step, gold upkeep for all units is paid in a lump
;            sum. If the player does not have enough gold, random units with
;            gold upkeep are disbanded.
; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
;            after all cities have been processed. If the player does not
;            have enough gold, random buildings from random cities are sold.
;            If still more gold is needed, then random units with gold
;            upkeep are disbanded.
gold_upkeep_style = "City"

; Whether also homeless units pay gold upkeep. Enabling requires that
; gold_upkeep_style is not "City"
homeless_gold_upkeep = FALSE

; How many points of output one basic unit consists of. Typically you
; want this to be some 10^n.
output_granularity = 1

; Is it possible to airlift even with zero airlift capacity when
; airliftingstyle server setting has been set to unlimited airlifts?
airlift_from_always_enabled = FALSE
airlift_to_always_enabled = TRUE

[wonder_visibility]
; When do opponents know which city, if any, has built the Small Wonder
; "Always"  - Information is always sent
; "Never"   - Information is never sent
; "Embassy" - Information is sent when team has an embassy with Wonder owner
small_wonders = "Always"

[illness]
; Whether plagues (illness) are possible
; There are some latent building effects in effects.ruleset which affect
; health, if you enable plague here.
illness_on = FALSE

; the base factor for illness (of percent)
illness_base_factor = 25

; minimum city size for illness
illness_min_size = 3

; factor for how much trading with a plagued city increases our city`s
; chance for plague (in percent)
illness_trade_infection = 0

; factor for how much pollution within a city increases its chance for
; plague (in percent)
illness_pollution_factor = 50

[incite_cost]
; city_incite_cost = total_factor * (city_size) * (base_incite_cost
;                      + (units_cost) * unit_factor
;                      + (improvements_cost) * improvement_factor)
;                    / ((distance to capital) * 100)
; See city_incite_cost() for more details
base_incite_cost = 10000
improvement_factor = 1
unit_factor = 2
total_factor = 10000

[combat_rules]
; If tired_attack is set to TRUE, units that attack with less than a single
; move point (per move_fragments in terrain.ruleset) will have their attack
; power reduced accordingly. For instance, if move_fragments = 3, a unit with
; 2/3 move points will have attack power 2/3 of normal.
; If this is set to FALSE units will attack with full strength even if they
; have only fractional moves left.
tired_attack = TRUE

; With some rules it`s possible that neither side of a combat dies.
; Set this to TRUE if unit should never gain veterancy from such a combat.
only_killing_makes_veteran = FALSE

; If either side of the fight is completely powerless, i.e., has
; zero attack/defense power after modifiers, fight is not considered
; a real fight. If this setting is enabled, nobody gets made veteran after
; such a fight.
only_real_fight_makes_veteran = FALSE

; When this setting is enabled, chance of getting veterancy from a combat
; gets modified by the strength of the opponent relative to the strength
; of unit that might gain the veterancy.
; When this setting is disabled, the modifier is always simply considered
; to be 100%, i.e, the base veterancy chance from units.ruleset is used as is.
; This affects both regular and diplomat combat.
combat_odds_scaled_veterancy = TRUE

; Does unit`s bombard rate get scaled down by how damaged it is.
; Even after this unit gets at least one bombard round.
damage_reduces_bombard_rate = TRUE

; When the attacker has BadWallAttacker flag, and there`s
; positive DefendBonus effect applied to the attack, attacker`s
; firepower gets reduced to this value.
; If firepower is already lower than this, it won`t be affected.
low_firepower_badwallattacker = 1

; When the defender has BadCityDefender flag, and it`s
; defending on a city tile, attacker`s firepower is doubled
; and defenders firepower is reduced to this value.
; If firepower is already lower than this, it won`t be affected.
low_firepower_pearl_harbour = 1

; When the opponent has LowFirepower combat bonus against
; a unit, it`s firepower is reduced to this value.
; If firepower is already lower than this, it won`t be affected.
low_firepower_combat_bonus = 1

; When a unit capable of attacking NonNative tiles does such an
; attack against NonNatBombardTgt unit, firepower of both sides
; is reduced to this value.
; If firepower is already lower than this, it won`t be affected.
low_firepower_nonnat_bombard = 1

; Percentage of population lost by a city after nuclear attak. If set to
; 100 city is destroyed along with all the units. If set to 0 city does not
; lose population. Any value below 50 means the city can never be
; destroyed completely using nuclear.
nuke_pop_loss_pct = 49

; Percentage chance of a city defender surviving nuclear attack. When set
; to 50 roughly half of defenders will survive nuclear attack. When set to
; 0 no defenders will survive. When set to 100 all defenders will survive.
nuke_defender_survival_chance_pct = 0

[borders]
; Base border radius from city.
radius_sq_city = 17

; Border radius square increased by this amount / point of city size
size_effect    = 1

; Difference between city workable area and area permanently claimed by
; city (these tiles cannot be stolen by stronger border sources).
; 0 means exactly city workable area is immune to border stealing.
; Negative value means outer workable tiles can be stolen; highly negative
; value (more than max city radius_sq) means any workable tile can be stolen.
; If City_Radius_Sq is variable, so is the set of locked tiles; this is
; a squared value, so the radius of the ring of tiles which are workable
; but not locked (or vice versa) varies but the area is constant.
radius_sq_city_permanent = 0

[research]
; Method of calculating technology costs
;   "Civ I|II"      - Civ (I|II) style. Every new tech add base_tech_cost to
;                     cost of next tech.
;   "Classic"       - Cost of technology is:
;                       base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
;                     where reqs == number of requirement for tech, counted
;                     recursively.
;   "Classic+"      - Cost are read from tech.ruleset. Missing costs are
;                     generated by style "Classic".
;   "Experimental"  - Cost of technology is:
;                       base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
;                                         - 0.5)
;                     where reqs == number of requirement for tech, counted
;                     recursively. Initial techs` cost will be base_tech_cost.
;   "Experimental+" - Cost are read from tech.ruleset. Missing costs are
;                     generated by style "Experimental".
;   "Linear"        - Cost of technology is:
;                     base_tech_cost * reqs
;                     where reqs == number of requirement for tech, counted
;                     recursively.
tech_cost_style = "Classic"

; Base research cost. Used in tech cost styles where tech cost is generated.
; In other words: used everywhere unless the cost of *all* techs are
; specified and the tech cost style is "Experimental+" or "Classic+".
base_tech_cost   = 20

; Minimum research cost. This is applied for techs that have their cost
; calculated by a formula. This is not applied for techs that have their
; cost explicitly stated in the tech.ruleset.
min_tech_cost    = 20

; Technology leak from other civilizations
; "None"           - No reduction of the technology cost.
; "Embassies"      - Technology cost is reduced depending on the number of
;                    players which already know the tech and you have an
;                    embassy with.
; "All Players"    - Technology cost is reduced depending on the number of
;                    all players (human, AI and barbarians) which already
;                    know the tech.
; "Normal Players" - Technology cost is reduced depending on the number of
;                    normal players (human and AI) which already know the
;                    tech.
tech_leakage = "None"

; Method of paying tech upkeep
; "None"   - no upkeep
; "Basic"  - upkeep is calculated as:
;     <Cost of technology> / tech_upkeep_divider - <Free tech upkeep>
; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
tech_upkeep_style = "None"

; upkeep cost is divided by this value
tech_upkeep_divider = 2000

; Method of selecting techs given for free
; "Goal"     - Towards player`s goal, random if no goal
; "Random"   - Random researchable tech
; "Cheapest" - Cheapest researchable tech, random among equal cost ones
free_tech_method = "Goal"

[culture]
; Minimum culture points for cultural domination victory
victory_min_points = 1000

; How big lead relative to second best player is needed for victory
victory_lead_pct   = 200

; How much existing history grows each turn. This makes older history
; of the same original value more valuable as newer history, as it has
; gained more interest.
history_interest_pml = 0

; How much each culture point affects the migration
; from/to the city. Each culture point count as this many permilles
; of a migration point.
migration_pml = 50

[calendar]
; Year in the beginning of the game
start_year = -4000

; Year 1 instead of 0.
skip_year_0 = TRUE

; How many fragments each year has. In addition to this, "Turn_Fragments" effects are
; needed to control fragment accumulation.
; Value 0 here disables year advancement by fragment accumulation.
fragments = 0

; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
; numbers begin from 1 and not 0) is shown.

;fragment_name0 = _("Jan")
;fragment_name1 = _("Feb")
; ...

; What labels are used for positive and negative years.
; /* TRANS: year label (Common Era) */
positive_label = _("CE")
; /* TRANS: year label (Before Common Era) */
negative_label = _("BCE")

; /* <-- avoid gettext warnings
;
; Disaster types, there can be up to 10:
;
; name                    = translatable name as seen by user
; reqs                    = requirements for disaster to happen (see effects.ruleset
;                           and README.effects for help on requirements)
; frequency               = how likely disaster is to occur.
;                           Final probability for each city each turn is -
;                           (this frequency) * (game settings option disasters
;                           frequency) / 1000000.
;                           If omitted, default is 0 and this disaster will not occur.
; effects
;   - "DestroyBuilding"   = Random building is destroyed
;   - "ReducePopulation"  = Reduce city size by one unless it's already 1
;   - "ReducePopDestroy"  = Reduce city size by one, possibly destroying the city
;   - "EmptyFoodStock"    = Remove all food from food stock
;   - "EmptyProdStock"    = Destroy current production
;   - "Pollution"         = One tile surrounding city polluted
;   - "Fallout"           = One tile surrounding city polluted with fallout
;
; */ <-- avoid gettext warnings

; No disasters in multiplayer ruleset

; /* <-- avoid gettext warnings
;
; Achievement types, there can be up to 40:
;
; name                    = translatable name as seen by user
; rule_name               = (optional) internal name for savegames, rulesets
;                           etc; if not present, "name" is used for this
;                           purpose too. Since the name used in savegames must
;                           not change, if you want to rename an item after a
;                           ruleset has been released, you should set
;                           "rule_name" to the original value of "name".
; type                    = What event grants the achievement to player.
;                           See README.achievements for list of these types.
; unique                  = If TRUE, only first one reaching the achievement will
;                           get it. Defaults to TRUE.
; value                   = Value to reach. Exact meaning of this depends on
;                           achievement type.
; culture                 = Amount of culture granted to player who gets achievement
;                           granted.
; first_msg               = Message shown to first player gaining the achievement
; cons_msg                = Message shown to consecutive players gaining the achievement
;
; */ <-- avoid gettext warnings

; No achievements in multiplayer ruleset

;
; Trade settings
;
; IN = international, IC = intercontinental.
; For each of the trade route types:
; "pct"        - Trade income %. If this is 0, trade route cannot be
;                established at all
; "cancelling" - What to do to previously established trade routes when they
;                turn illegal
;                "Active"   - Keep them active (although they will only
;                             provide nonzero income if illegal due to
;                             trademindist rather than pct==0)
;                "Inactive" - Keep them inactive
;                "Cancel"   - Cancel them altogether
; "bonus"      - One-time bonuses granted when trade route established
;                "None"     - No one-time bonus
;                "Gold"     - Bonus to gold
;                "Science"  - Bonus to research
;                "Both"     - Bonus to gold and research
;
[trade]
settings =
  { "type",       "pct", "cancelling", "bonus"
    "National",   0,     "Cancel",     "Both"
    "NationalIC", 0,     "Cancel",     "Both"
    "IN",         0,     "Cancel",     "Both"
    "INIC",       0,     "Cancel",     "Both"
    "Ally",       0,     "Cancel",     "Both"
    "AllyIC",     0,     "Cancel",     "Both"
    "Enemy",      0,     "Cancel",     "Both"
    "EnemyIC",    0,     "Cancel",     "Both"
    "Team",       0,     "Cancel",     "Both"
    "TeamIC",     0,     "Cancel",     "Both"
  }

; Minimum trade a trade route produces, as long as the good has nonzero income
; for the relevant direction (from_pct / to_pct)
min_trade_route_val = 0

; Reveal the trade partner city on map.
reveal_trade_partner = FALSE

; When are goods for the trade route chosen.
; "Leaving" - Goods to carry are assigned to unit when it`s built, or it changes homecity
; "Arrival" - Goods are chosen when trade route is established, when unit arrives to destination
goods_selection = "Arrival"

; /* <-- avoid gettext warnings
;
; Goods types, there can be up to 25:
;
; name                    = translatable name as seen by user
; rule_name               = (optional) internal name for savegames, rulesets
;                           etc; if not present, "name" is used for this
;                           purpose too. Since the name used in savegames must
;                           not change, if you want to rename an item after a
;                           ruleset has been released, you should set
;                           "rule_name" to the original value of "name".
; reqs                    = requirements for a city to provide goods (see effects.ruleset
;                           and README.effects for help on requirements)
; from_pct                = Income for the sending end of the trade route. Default is 100%
;                           This value is applied to both ends of bidirectional routes.
; to_pct                  = Income for the receiving end of the trade route. Default is 100%
;                           This value is not used at all in case of bidirectional routes.
; onetime_pct             = Onetime bonuses when trade route gets established. Default is 100%
; flags
;   - "Bidirectional"     = Trade route carrying the goods does not have "from" and "to"
;                           ends, but both ends are considered the same.
;   - "Depletes"          = Trade route gets cancelled when the source city cannot provide
;                           goods any more. Bidirectional routes gets cancelled if either
;                           one of the involved cities cannot provide goods.
;   - "Self-Provided"     = Good requirement (in requirement lists of other rules)
;                           is fulfilled also for the city exporting, or capable of exporting,
;                           the good. Otherwise it would be true only for cities importing the
;                           good from elsewhere.
; helptext                = Optional help text string; should escape all raw
;                           newlines so that xgettext parsing works
;
; */ <-- avoid gettext warnings

[goods_good]
name = _("Goods")


; /* <-- avoid gettext warnings
;
; Clause types
;
; Clause types that are not listed here, are not enabled at all.
;
; type                   = Type of the clause, one of "Advance", "Gold", "Map", "Seamap",
;                          "City", "Ceasefire", "Peace", "Alliance", "Vision", "Embassy",
;                          "SharedTiles"
; giver_reqs             = requirements that the giving side of the clause needs to fulfill
;                          (see effects.ruleset and README.effects for help on requirements)
; receiver_reqs          = requirements that the receiving side of the clause needs to fulfill
;
; */ <-- avoid gettext warnings

[clause_advance]
type = "Advance"

[clause_gold]
type = "Gold"

[clause_map]
type = "Map"

[clause_seamap]
type = "Seamap"

[clause_city]
type = "City"

[clause_ceasefire]
type = "Ceasefire"

[clause_peace]
type = "Peace"

[clause_alliance]
type = "Alliance"

[clause_vision]
type = "Vision"

[clause_embassy]
type = "Embassy"

; /* <-- avoid gettext warnings
;Counter types, there can be up to 20:
;
;name                    = translatable name as seen by user
;rule_name               = (optional) internal name for savegames, rulesets
;                          etc; if not present, "name" is used for this
;                          purpose too. Since the name used in savegames must
;                          not change, if you want to rename an item after a
;                          ruleset has been released, you should set
;                          "rule_name" to the original value of "name".
;checkpoint              = Trigger value of the counter. When counter`s
;                          value is at least this much, the "Counter" requirement
;                          is fulfilled.
;def                     = Initial value of the counter.
;type                    = Behavior of the counter:
;                          "Owned" - Increased each turn, zeroed when city changes owner
;                          "Celebraring" - Increased each celebrates turn. In case city
;                          does not celebrates, counter is zeroed
;                          "Disorder" - Increased each turn city is in disorder state. In
;                          case riots are eliminated, value is zeroed.
;helptext                = Description about relation with requirement
;                          vectors (effects, building, units, etc.)
;                          and when counter req of this counter
;                          will be fulfilled.
; */ <-- avoid gettext warnings

[playercolors]
background.r = 86
background.g = 86
background.b = 86

; Player colors for 32 players are defined below.
; Avoid greens, blues, and white / very pale colors (too easy to confuse
; with terrain).
; Avoid dark colors.
colorlist =
    { "r", "g", "b"
      255,   0,   0  ; Red
      255, 255,   0  ; Yellow
        0, 255, 255  ; Blue
      138,  43, 226  ; Purple
      255, 165,   0  ; Orange
      255,   0, 255  ; Magenta
      173, 216, 230  ; Cornflower
        0, 255, 127  ; Emerald
      250, 128, 114  ; Salmon
      124, 252,   0  ; Green
      139,   0,   0  ; Burgundy
      255, 192, 203  ; Pink
      211, 211, 211  ; Silver
      218, 112, 214  ; Heliotrope
      255,  20, 147  ; Fuchsia
      100, 149, 237  ; Azure
      255, 215,   0  ; Gold
      245, 222, 179  ; Khaki
      255, 255, 128  ; Butter
      192, 255, 128  ; Mint
      204, 255,   0  ; Lime
      255, 211, 140  ; Peach
      255,  79,   0  ; Vermilion
      240, 145, 169  ; Puce
      255, 219,  88  ; Mustard
      153,  17, 153  ; Aubergine
      184, 134,  11  ; Brown
      255, 102,   0  ; Pumpkin
      102, 205, 170  ; Turquoise
      195,  33,  72  ; Crimson
      168, 153, 230  ; Lavender
      255, 250, 205  ; Cream
    }

[teams]
; Team names correspond roughly to colors defined above, so that
; plrcolormode = TEAM_ORDER is not gratuitously confusing.
names =
; /* TRANS: Name of a color; used as unique identifier for a team */
; /* TRANS: With this and other color team names, uniqueness is more */
; /* TRANS: important than precise translation. To see the colors, start a */
; /* TRANS: multiplayer game with 32 players and look at the Nations report. */
 _("?team name:Red"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Yellow"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Blue"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Purple"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Orange"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Magenta"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Cornflower"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Emerald"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Salmon"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Green"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Burgundy"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Pink"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Silver"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Heliotrope"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Fuchsia"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Azure"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Gold"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Khaki"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Butter"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Mint"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Lime"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Peach"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Vermilion"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Puce"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Mustard"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Aubergine"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Brown"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Pumpkin"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Turquoise"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Crimson"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Lavender"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Cream")

[settings]
set =
    { "name", "value", "lock"
      "minplayers", 2, FALSE
      "generator", "ISLAND", FALSE
      "topology", "HEX|ISO", FALSE
      "wrap", "WRAPX|WRAPY", FALSE
      "startpos", "SINGLE", FALSE
      "tinyisles", FALSE, FALSE
      "northlatitude", 500, FALSE
      "southlatitude", 500, FALSE
      "separatepoles", FALSE, FALSE
      "huts", 0, FALSE
      "aifill", 0, FALSE
      "dispersion", 0, FALSE
      "diplomacy", "DISABLED", FALSE
      "contactturns", 0, FALSE
      "revolen", 2, FALSE
      "barbarians", "DISABLED", FALSE
      "techpenalty", 0, FALSE
      "startunits", "cccwwwxxxx", FALSE
      "specials", 350, FALSE
      "borders", "SEE_INSIDE", FALSE
      "foggedborders", TRUE, FALSE
    }