-
Notifications
You must be signed in to change notification settings - Fork 38
/
ModOptions.lua
567 lines (560 loc) · 18.5 KB
/
ModOptions.lua
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
local options= {
{
key = 'startingresources',
name = 'Starting Resources',
desc = 'Sets the storage and amount of resources with which each player will start',
type = 'section',
},
{
key = 'startmetal',
name = 'Starting Metal',
desc = 'Determines the amount of metal and metal storage with which each player will start',
type = 'number',
section= 'startingresources',
def = 100,
min = 0,
max = 1000,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'startenergy',
name = 'Starting Energy',
desc = 'Determines the amount of energy and energy storage with which each player will start',
type = 'number',
section= 'startingresources',
def = 100,
min = 0,
max = 1000,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
-- Shard AI Options
{
key = 'aioptions',
name = 'DAI (AI Opponent) Options',
desc = 'Allows you to adjust ShardLua settings',
type = 'section',
},
{
key = 'aidebug',
name = 'AI is spamming chat with debug values',
desc = 'AI is spamming chat with debug values',
type="list",
def="disabled",
section= "aioptions",
items={
{key="disabled", name="Disabled", desc="Clean Chat"},
{key="enabled", name="Enabled", desc="Cries in Spam"},
}
},
{
key = 'ai_enableincomemultiplier',
name = 'Enable DAI resource cheats',
desc = 'Enable DAI resource cheats',
type="list",
def="disabled",
section= "aioptions",
items={
{key="disabled", name="Disabled", desc="Clean, non cheating AI"},
{key="enabled", name="Enabled", desc="Laughs in hardcore"},
}
},
{
key = 'ai_incomemultiplier',
name = 'AI Income Percentage',
desc = 'Percentage of AI resource income compared to the default (100 = 100%, I.E. Normal. 200 = 200%, which would mean that the AI income would be double the player income)',
type = 'number',
section= 'aioptions',
def = 100,
min = 1,
max = 1000,
step = 1,
},
-- Resourcing
{
key = 'resourcing',
name = 'Resourcing Options',
desc = 'Allows you to adjust how metal income is handled and how it is distributed',
type = 'section',
},
{
key = 'mexlayout',
name = 'Default Metal Spot Layout',
desc = 'If enabled, the default layout for metal spots will be used, if disabled, the metal spots defined by the map will be used.',
type="list",
def="enabled",
section= "resourcing",
items={
{key="disabled", name="Disabled", desc="Use the Metal Map Layout defined in the map"},
{key="enabled", name="Enabled", desc="Default Metal Map Layout"},
}
},
{
key = 'mexrandomlayout',
name = 'Metal Spot Layout to use',
desc = 'This allows you to choose between the different metal spot layouts that are available.',
type="list",
def="standard",
section= "resourcing",
items={
{key="standard", name="Standard", desc="Random placing that is mirrored. Has various methods for different map shapes and is more careful with metal spot placement."},
{key="ffa", name="Free For All", desc=""},
{key="legacy1", name="Legacy 1", desc="Most uniform layout. Max metal ~49.1, Max metal spots 56."},
{key="legacy2", name="Legacy 2", desc="Less uniform, more clustered layout. Max metal ~50, Max metal spots 56."},
{key="legacy3", name="Legacy 3", desc="The Pitchfork! Dense metal layout with lower output per metal spot. Max metal ~51.1, Max metal spots 94."},
{key="legacy4", name="Legacy 4", desc=""},
}
},
{
key = 'maximummexelevationdifference',
name = 'Standard Metal Spot Layout: Maximum elevation difference for Metal Spot locations',
desc = 'This is used as an attempt to avoid placement on cliffs (only works on Standard Metal Spot Layout)',
type = 'number',
section= 'resourcing',
def = 50,
min = 0,
max = 200,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'allowmexesinwater',
name = 'Standard Metal Spot Layout: Allow metal spots to be placed in water?',
desc = 'Should metal spots be placed in water? Sometimes turning this off can be beneficial if the water on a map does damage. (only works on Standard Metal Spot Layout)',
type="list",
def="disabled",
section= "resourcing",
items={
{key="disabled", name="Disabled", desc="Disallow metal spots being placed in water."},
{key="enabled", name="Enabled", desc="Allow metal spots to be placed in water."},
}
},
{
key = 'dynamicmexoutput',
name = 'Should metal spot output values be dynamic?',
desc = 'Uses a sine to determine metal spot values based upon distance from the edge of the map and distance to the center.',
type="list",
def="disabled",
section= "resourcing",
items={
{key="disabled", name="Disabled", desc="All metal spot output values will be set to 1.0"},
{key="enabled", name="Enabled", desc="All metal spot output values will be automatically calculated"},
}
},
{
key = 'mexspotspersidemultiplier',
name = 'Metal spot per side percentage modifier',
desc = 'This is a percentage modifier for the amount of metal spots on a map. A setting of 100 is literally 100%, so increasing to 200% will double the amount of metal spots that are placed on the map. Remember that the amount of metal spots is already scaled according to how many players are in the game.',
type = 'number',
section= 'resourcing',
def = 100,
min = 1,
max = 200,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'metalextractorcommunism',
name = 'Metal Extractor Communism',
desc = 'If enabled, then all metal income from Metal Extractors is split between allies. This means that it does not matter which ally owns the metal extractor, the entire team will benefit.',
type="list",
def="disabled",
section= "resourcing",
items={
{key="disabled", name="Disabled", desc="Metal Extractor income will NOT be split between allies."},
{key="enabled", name="Enabled", desc="Metal Extractor income will be split between allies."},
}
},
{
key = 'mincome',
name = 'Automatic Metal Income',
desc = 'Determines the amount of metal income you start with per second. It increases every <Basic Metal Income Increase Interval> (2.5 minutes, is the default) by this amount until it hits <Maximum Basic Income> income.',
type="list",
def="enabled",
section= "resourcing",
items={
{key="disabled", name="Disabled", desc="Turn off the automatic metal income"},
{key="enabled", name="Enabled", desc="Metal income is automatic and graduates as the game goes along."},
}
},
{
key = 'basicincome',
name = 'Basic Metal Income Amount',
desc = 'Determines the amount of metal income you start with per second.',
type = 'number',
section= 'resourcing',
def = 1,
min = 0,
max = 5,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'basicincomeinterval',
name = 'Basic Metal Income Increase Interval',
desc = 'Determines how often your basic metal income is increased.',
type = 'number',
section= 'resourcing',
def = 2.5,
min = 0.5,
max = 5,
step = 0.5, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'basicincomeincrease',
name = 'Basic Metal Income Increase',
desc = 'Your basic metal income increases every <Basic Metal Income Increase Interval> (1 minutes, is the default) by this amount until it hits <Maximum Basic Income> income.',
type = 'number',
section= 'resourcing',
def = 1,
min = 0,
max = 5,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'maxbasicincome',
name = 'Maximum Basic Metal Income',
desc = 'Determines the maximum amount that your basic metal income level can reach.',
type = 'number',
section= 'resourcing',
def = 10,
min = 0,
max = 30,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'supplyoptions',
name = 'Supply Options',
desc = 'Allows you to set options that effect Supply',
type = 'section',
},
{
key = 'supplycap',
name = 'Maximum Army Supply',
desc = 'Determines the maximum army supply that is allowed.',
type = 'number',
section= 'supplyoptions',
def = 1000000,
min = 50,
max = 1000000,
step = 50, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'intrinsicsupply',
name = 'Intrinsic Army Supply',
desc = 'How much supply is available from the beginning of the game without needing supply depots?',
type = 'number',
section= 'supplyoptions',
def = 10,
min = 10,
max = 400,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'mexcost',
name = 'Metal Extractor Costs',
desc = 'Allows you to set the cost of Metal Extractors',
type = 'section',
},
{
key = 'metalextractorcostateran',
name = 'Ateran Metal Extractor Cost',
desc = 'How much metal does an Ateran Metal Extractor cost?',
type = 'number',
section= 'mexcost',
def = 50,
min = 1,
max = 500,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'metalextractorcostzaal',
name = 'Zaal Metal Extractor Cost',
desc = 'How much metal does an Zaal Metal Extractor cost?',
type = 'number',
section= 'mexcost',
def = 65,
min = 1,
max = 500,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
-- Gameplay Options
{
key = 'gameplayoptions',
name = 'Gameplay Options',
desc = 'Various gameplay options that will change how the game is played.',
type = 'section',
},
{
key = 'unithealthmodifier',
name = 'Unit Health Modifier',
desc = 'This acts as a percentage of base unit health. Setting to 200 would double unit hitpoints.',
type = 'number',
section= 'gameplayoptions',
def = 500,
min = 1,
max = 2000,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'scavengers',
name = 'Scavenger amount',
desc = 'This multiplier will be applied on the amount of civilians a map will end up with',
type = 'number',
section= 'gameplayoptions',
def = 0,
min = 0,
max = 5,
step = 0.1,
},
{
key = 'scavengerstech',
name = 'Scavengers Tech Speed',
desc = 'Determines how fast scav tech ramps up. Adaptive will adjust to players skill',
type = 'list',
section = 'gameplayoptions',
def = "adaptive",
items={
{key="adaptive", name="Adaptive", desc="Adapts to players skill"},
{key="easy", name="Easy", desc="Slow ramp up for newbies and noobs"},
{key="medium", name="Medium", desc="Normal ramp up for slightly experienced players"},
{key="hard", name="Hard", desc="Hard ramp up for experienced players"},
{key="brutal", name="Brutal", desc="You'll die"},
}
},
{
key = 'lootboxes',
name = 'Lootboxes',
desc = '1 to enable, 0 to disable',
type = 'number',
section= 'gameplayoptions',
def = 1,
min = 0,
max = 1,
step = 1,
},
{
key="deathmode",
name="Game End Mode",
desc="What it takes to eliminate a team",
type="list",
def="com",
section="gameplayoptions",
items={
{key="neverend", name="None", desc="Teams are never eliminated"},
{key="com", name="Kill all enemy Overseers", desc="When a team has no Overseers left, it loses"},
{key="killall", name="Kill everything", desc="Every last unit must be eliminated, no exceptions!"},
}
},
{
key = "shareddynamicalliancevictory",
name = "Dynamic Alliance Victory?",
desc = "Should dynamic alliance teams share in a victory, or should they be forced to turn on one another?",
type = "bool",
def = true,
section= "gameplayoptions",
},
{
key = 'unitheat',
name = 'Unit Heat Amount',
desc = 'How much heat does each unit generate when it moves through an area?',
type = 'number',
section= 'gameplayoptions',
def = 42,
min = 0,
max = 100,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
-- Control Victory Options
{
key = 'controlvictoryoptions',
name = 'Control Victory Options',
desc = 'Allows you to control at a granular level the individual options for Control Point Victory',
type = 'section',
},
{
key="scoremode",
name="Scoring Mode (Control Victory Points)",
desc="Defines how the game is played",
type="list",
def="disabled",
section="controlvictoryoptions",
items={
{key="disabled", name="Disabled", desc="Disable Control Points as a victory condition."},
{key="countdown", name="Countdown", desc="A Control Point decreases all opponents' scores, zero means defeat."},
{key="tugofwar", name="Tug of War", desc="A Control Point steals enemy score, zero means defeat."},
{key="domination", name="Domination", desc="Holding all Control Points will grant 1000 score, first to reach the score limit wins."},
}
},
{
key = 'limitscore',
name = 'Total Score',
desc = 'Total score amount available.',
type = 'number',
section= 'controlvictoryoptions',
def = 3500,
min = 500,
max = 5000,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = "numberofcontrolpoints",
name = "Set number of Control Points on the map",
desc = "Sets the number of control points on the map and scales the total score amount to match. Has no effect if Preset map configs are enabled.",
section= "controlvictoryoptions",
type="list",
def="7",
section= "controlvictoryoptions",
items={
{key="7", name="7", desc=""},
{key="13", name="13", desc=""},
{key="19", name="19", desc=""},
{key="25", name="25", desc=""},
}
},
{
key = "usemapconfig",
name = "Use preset map-specific Control Point locations?",
desc = "Should the control point config for this map be used instead of autogenerated control points?",
type="list",
def="disabled",
section= "controlvictoryoptions",
items={
{key="disabled", name="Disabled", desc="This will tell the game to use autogenerated control points."},
{key="enabled", name="Enabled", desc="This will tell the game to use preset map control points (Set via map config)."},
}
},
{
key = 'captureradius',
name = 'Capture Radius',
desc = 'Radius around a point in which to capture it.',
type = 'number',
section= 'controlvictoryoptions',
def = 500,
min = 100,
max = 1000,
step = 25, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'capturetime',
name = 'Capture Time',
desc = 'Time to capture a point.',
type = 'number',
section= 'controlvictoryoptions',
def = 30,
min = 1,
max = 60,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'capturebonus',
name = 'Capture Bonus',
desc = 'Percentage of how much faster capture takes place by adding more units.',
type = 'number',
section= 'controlvictoryoptions',
def = 5,
min = 1,
max = 100,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'decapspeed',
name = 'De-Cap Speed',
desc = 'Speed multiplier for neutralizing an enemy point.',
type = 'number',
section= 'controlvictoryoptions',
def = 2,
min = 1,
max = 3,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'starttime',
name = 'Start Time',
desc = 'Number of seconds until control points can be captured.',
type = 'number',
section= 'controlvictoryoptions',
def = 180,
min = 0,
max = 300,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'metalperpoint',
name = 'Metal given to each player per captured point',
desc = 'Each player on an allyteam that has captured a point will receive this amount of resources per point captured per second',
type = 'number',
section= 'controlvictoryoptions',
def = 0,
min = 0,
max = 20,
step = 0.1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'energyperpoint',
name = 'Energy given to each player per captured point',
desc = 'Each player on an allyteam that has captured a point will receive this amount of resources per point captured per second',
type = 'number',
section= 'controlvictoryoptions',
def = 0,
min = 0,
max = 20,
step = 0.1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'dominationscoretime',
name = 'Domination Score Time',
desc = 'Time needed holding all points to score in multi domination.',
type = 'number',
section= 'controlvictoryoptions',
def = 30,
min = 1,
max = 60,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'tugofwarmodifier',
name = 'Tug of War Modifier',
desc = 'The amount of score transfered between opponents when points are captured is multiplied by this amount.',
type = 'number',
section= 'controlvictoryoptions',
def = 2,
min = 0,
max = 6,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
{
key = 'dominationscore',
name = 'Score awarded for Domination',
desc = 'The amount of score awarded when you have scored a domination.',
type = 'number',
section= 'controlvictoryoptions',
def = 1000,
min = 500,
max = 1000,
step = 1, -- quantization is aligned to the def value
-- (step <= 0) means that there is no quantization
},
-- End Control Victory Options
}
return options