-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathconfig.lua
More file actions
449 lines (429 loc) · 22.5 KB
/
config.lua
File metadata and controls
449 lines (429 loc) · 22.5 KB
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
-- dependencies
local abs = math.abs
-- Entities that spawns as keys with values denoting the chance between 0-1. -1 means it defaults to that. Default: {['sand-rock-big'] = -1, ['rock-big'] = 0.2, ['rock-huge'] = 0.6}
-- ['tree-01'] = -1, ['tree-02'] = 0.2, ['tree-03'] = 0.6
-- They need to be in accending order
local diggy_entities = {['sand-rock-big'] = -1, ['rock-big'] = 0.18, ['tree-01'] = 0.375, ['tree-03'] = 0.5, ['tree-05'] = 0.625, ['tree-07'] = 0.75, ['tree-08'] = 0.875}
-- this
local Config = {
-- a list of features to register and enable
-- to disable a feature, change the flag
features = {
-- creates a starting zone
starting_zone = {
enabled = true,
-- initial starting position size, higher values are not recommended
starting_size = 8,
-- where the market should spawn
market_spawn_position = {x = 0, y = 3},
-- the entity the spawn is surrounded by, has to match one entity defined in diggy_entities (default: rock-big)
start_entity = 'tree-07',
-- the tile the spawn is made off
start_tile = 'grass' -- grass or dirt
},
-- controls the Daylight (Default diggy: enabled = true)
night_time = {
enabled = false -- true = No Daylight, false = Day/night circle (Solar panels work)
},
-- controls setting up the players
setup_player = {
enabled = true,
starting_items = {
{name = 'stone-wall', count = 12},
{name = 'iron-gear-wheel', count = 8},
{name = 'iron-plate', count = 16}
},
-- 0.01 bonus equals 1% in game. This value is recommended to be tweaked for single player
initial_mining_speed_bonus = 1,
-- applied when _CHEATS is set to true and _DEBUG is NOT true.
-- see config.lua -> config.player_create.cheats for available options
cheats = {
enabled = true,
-- Sets the manual mining speed for the player force. A value of 1 = 100% faster. Setting it
-- to 0.5 would make it 50% faster than the base speed.
manual_mining_speed_modifier = 1000,
-- increase the amount of inventory slots for the player force
character_inventory_slots_bonus = 0,
-- increases the run speed of all characters for the player force
character_running_speed_modifier = 2,
-- a flat health bonus to the player force
character_health_bonus = 1000000,
-- starts with a fully slotted power armor mk2
start_with_power_armor = true,
-- adds additional items to the player force when starting in addition to defined in start_items above
starting_items = {}
}
},
-- core feature
diggy_hole = {
enabled = true,
-- initial damage per tick it damages a rock to mine, can be enhanced by robot_damage_per_mining_prod_level
robot_initial_mining_damage = 4,
-- damage added per level of mining productivity level research
robot_damage_per_mining_prod_level = 1,
-- turn this setting on if you want to bring back landfill research, default is off due to griefing
allow_landfill_research = false,
diggy_entities = diggy_entities,
diggy_tile = 'grass' -- grass or dirt
},
-- adds the ability to collapse caves
diggy_cave_collapse = {
enabled = false,
-- adds per tile what the current stress is
enable_stress_grid = false,
-- shows the mask on spawn
enable_mask_debug = false,
--the size of the mask used
mask_size = 9,
--how much the mask will effect tiles in the different rings of the mask
mask_relative_ring_weights = {2, 3, 4},
-- delay in seconds before the cave collapses
collapse_delay = 2.5,
-- the threshold that will be applied to all neighbors on a collapse via a mask
collapse_threshold_total_strength = 16,
support_beam_entities = {
['market'] = 9,
['stone-wall'] = 3,
['sand-rock-big'] = 2,
['rock-big'] = 2,
['rock-huge'] = 2.5,
['out-of-map'] = 1,
['stone-path'] = 0.03,
['concrete'] = 0.04,
['hazard-concrete'] = 0.04,
['refined-concrete'] = 0.06,
['refined-hazard-concrete'] = 0.06
},
cracking_sounds = {
{'diggy.cracking_sound_1'},
{'diggy.cracking_sound_2'}
},
-- the entity that spawns on collapse, has to match one entity defined in diggy_entities (default: rock-big)
collapse_entity = 'rock-big',
-- the item that is used as icon for the collapse alert
collapse_item = 'stone'
},
-- Adds the ability to drop coins and track how many are sent into space
coin_gathering = {
enabled = true,
-- value between 0 and 1, higher value means stronger variance between coordinates
noise_variance = 0.75,
-- minimum noise value to spawn a treasure chest, works best with a very high noise variance,
-- otherwise you risk spawning a lot of chests together
treasure_chest_noise_threshold = 0.69,
-- minimum distance from spawn where a chest can spawn
minimal_treasure_chest_distance = 25,
-- chances to receive a coin when mining
mining_coin_chance = 0.15,
mining_coin_amount = {min = 1, max = 5},
-- lets you set the coin modifiers for aliens
-- the modifier value increases the upper random limit that biters can drop
alien_coin_modifiers = {
['small-biter'] = 2,
['small-spitter'] = 2,
['small-worm-turret'] = 2,
['medium-biter'] = 3,
['medium-spitter'] = 3,
['medium-worm-turret'] = 3,
['big-biter'] = 5,
['big-spitter'] = 5,
['big-worm-turret'] = 5,
['behemoth-biter'] = 7,
['behemoth-spitter'] = 7
},
-- chance of aliens dropping coins between 0 and 1, where 1 is 100%
alien_coin_drop_chance = 0.28,
-- shows the chest locations, only use when debugging
display_chest_locations = false,
treasure_chest_raffle = {
['coin'] = {chance = 1.00, min = 20, max = 255},
['stone'] = {chance = 0.20, min = 15, max = 40},
['copper-ore'] = {chance = 0.25, min = 30, max = 60},
['copper-plate'] = {chance = 0.10, min = 12, max = 25},
['iron-ore'] = {chance = 0.20, min = 10, max = 55},
['iron-plate'] = {chance = 0.10, min = 5, max = 25},
['steel-plate'] = {chance = 0.05, min = 3, max = 14},
['steel-furnace'] = {chance = 0.03, min = 1, max = 2},
['steam-engine'] = {chance = 0.03, min = 1, max = 2},
['coal'] = {chance = 0.30, min = 30, max = 55},
['concrete'] = {chance = 0.14, min = 10, max = 50},
['stone-brick'] = {chance = 0.14, min = 25, max = 75},
['stone-wall'] = {chance = 0.50, min = 1, max = 5},
['transport-belt'] = {chance = 0.10, min = 1, max = 5},
['fast-transport-belt'] = {chance = 0.07, min = 2, max = 7},
['express-transport-belt'] = {chance = 0.04, min = 4, max = 9},
['rail'] = {chance = 0.20, min = 7, max = 15},
['rail-signal'] = {chance = 0.05, min = 3, max = 8},
['rail-chain-signal'] = {chance = 0.05, min = 3, max = 8},
['firearm-magazine'] = {chance = 0.25, min = 35, max = 120},
['piercing-rounds-magazine'] = {chance = 0.10, min = 15, max = 35},
['gun-turret'] = {chance = 0.3, min = 1, max = 2},
['beacon'] = {chance = 0.01, min = 1, max = 2},
['effectivity-module'] = {chance = 0.03, min = 1, max = 2},
['effectivity-module-2'] = {chance = 0.01, min = 1, max = 2},
['productivity-module'] = {chance = 0.03, min = 1, max = 2},
['productivity-module-2'] = {chance = 0.01, min = 1, max = 2},
['speed-module'] = {chance = 0.03, min = 1, max = 2},
['speed-module-2'] = {chance = 0.01, min = 1, max = 2},
['small-lamp'] = {chance = 0.05, min = 1, max = 5}
}
},
-- replaces the chunks with void
refresh_map = {
enabled = true
},
-- automatically opens areas
simple_room_generator = {
enabled = true,
-- value between 0 and 1, higher value means stronger variance between coordinates
noise_variance = 0.066,
-- shows where rooms are located
display_room_locations = false,
-- minimum distance and noise range required for water to spawn
room_noise_minimum_distance = 9,
room_noise_ranges = {
{name = 'water', min = 0.84, max = 0.96},
{name = 'water', min = 0.73, max = 0.81},
{name = 'water', min = 0.54, max = 0.7},
{name = 'dirt', min = 0.46, max = 0.53},
{name = 'dirt', min = 0.37, max = 0.45}
},
water = 'water' -- The water that spawns when a room opens (Diggy default: deepwater-green)
},
-- responsible for resource spawning
scattered_resources = {
enabled = true,
-- determines how distance is measured
distance = function(x, y)
return abs(x) + abs(y)
end,
--distance = function (x, y) return math.sqrt(x * x + y * y) end,
-- defines the weights of which resource_richness_value to spawn
resource_richness_weights = {
['scarce'] = 440,
['low'] = 350,
['sufficient'] = 164,
['good'] = 30,
['plenty'] = 10,
['jackpot'] = 6
},
-- defines the min and max range of ores to spawn
resource_richness_values = {
['scarce'] = {1, 200},
['low'] = {201, 400},
['sufficient'] = {401, 750},
['good'] = {751, 1200},
['plenty'] = {1201, 2000},
['jackpot'] = {2001, 5000}
},
-- increases the amount of resources by flat multiplication to initial amount
-- highly suggested to use for fluids so their yield is reasonable
resource_type_scalar = {
['crude-oil'] = 1500,
['uranium-ore'] = 1.25
},
-- ==============
-- Debug settings
-- ==============
-- shows the ore locations, only use when debugging (compound_cluster_mode)
display_ore_clusters = false,
-- =======================
-- Scattered mode settings
-- =======================
-- creates scattered ore (single tiles) at random locations
scattered_mode = false,
-- defines the increased chance of spawning resources
-- calculated_probability = resource_probability + ((distance / scattered_distance_probability_modifier) / 100)
-- this means the chance increases by 1% every DISTANCE tiles up to the max_probability
scattered_distance_probability_modifier = 10,
-- min percentage of chance that resources will spawn after mining
scattered_min_probability = 0.01,
-- max chance of spawning resources based on resource_probability + calculated scattered_distance_probability_modifier
scattered_max_probability = 0.10,
-- percentage of resource added to the sum. 100 tiles means
-- 10% more resources with a distance_richness_modifier of 10
-- 20% more resources with a distance_richness_modifier of 5
scattered_distance_richness_modifier = 7,
-- multiplies probability only if cluster mode is enabled
scattered_cluster_probability_multiplier = 0.5,
-- multiplies yield only if cluster mode is enabled
scattered_cluster_yield_multiplier = 1.7,
-- weights per resource of spawning
scattered_resource_weights = {
['coal'] = 160,
['copper-ore'] = 215,
['iron-ore'] = 389,
['stone'] = 212,
['uranium-ore'] = 21,
['crude-oil'] = 3
},
-- minimum distance from the spawn point required before it spawns
scattered_minimum_resource_distance = {
['coal'] = 16,
['copper-ore'] = 18,
['iron-ore'] = 18,
['stone'] = 15,
['uranium-ore'] = 86,
['crude-oil'] = 57
},
-- ==============================
-- Compound cluster mode settings
-- ==============================
-- creates compound clusters of ores defined by a layered ore-gen
cluster_mode = true,
-- spawns tendrils of ore with roughly 80% purity
ore_pattern = require 'map_gen.maps.diggy.orepattern.tendrils_impure'
-- spawns some smaller dedicated and bigger mixed tendrils
--ore_pattern = require 'map_gen.maps.diggy.orepattern.tendrils',
-- spawns clusters of ore similar to vanilla, but mixed
--ore_pattern = require 'map_gen.maps.diggy.orepattern.clusters',
},
-- controls the alien spawning mechanic
alien_spawner = {
enabled = true,
-- minimum distance from spawn before aliens can spawn
alien_minimum_distance = 40,
-- chance of spawning aliens when mining from 0 to 1
alien_probability = 0.05,
-- each tile of void removed increases alien evolution by
evolution_per_void_removed = 0.0000024,
-- initial evolution percentage, recommended to set to 0 for non-multiplayer setups
initial_evolution = 10,
-- evolution over time value, leave nil to use vanilla settings
evolution_over_time_factor = 0.000008,
-- spawns the following units when they die. To disable, remove the contents
-- any non-rounded number will turn into a chance to spawn an additional alien
-- example: 2.5 would spawn 2 for sure and 50% chance to spawn one additionally
hail_hydra = {
-- spitters
['small-spitter'] = {['small-worm-turret'] = {min = 0.1, max = 0.8}},
['medium-spitter'] = {['medium-worm-turret'] = {min = 0.1, max = 0.8}},
['big-spitter'] = {['big-worm-turret'] = {min = 0.1, max = 0.8}},
['behemoth-spitter'] = {['behemoth-worm-turret'] = {min = 0.2, max = 0.8}},
-- biters
['medium-biter'] = {['small-biter'] = {min = 0.6, max = 1.5}},
['big-biter'] = {['medium-biter'] = {min = 0.6, max = 1.5}},
['behemoth-biter'] = {['big-biter'] = {min = 0.6, max = 2}},
-- worms
['small-worm-turret'] = {['small-biter'] = {min = 1, max = 2.5}},
['medium-worm-turret'] = {
['small-biter'] = {min = 1, max = 2.5},
['medium-biter'] = {min = 0.3, max = 1.5}
},
['big-worm-turret'] = {
['small-biter'] = {min = 1, max = 2.5},
['medium-biter'] = {min = 0.7, max = 1.5},
['big-biter'] = {min = 0.7, max = 2}
},
['behemoth-worm-turret'] = {
['small-biter'] = {min = 1.5, max = 3},
['medium-biter'] = {min = 1.2, max = 2},
['big-biter'] = {min = 1, max = 2},
['behemoth-biter'] = {min = 0.7, max = 1.2}
}
}
},
--Tracks players causing collapses
antigrief = {
enabled = true,
autojail = true,
allowed_collapses_first_hour = 4
},
experience = {
enabled = true,
-- controls the formula for calculating level up costs in stone sent to surface
difficulty_scale = 20, -- Diggy default 15. Higher increases experience requirement climb
first_lvl_xp = 350, -- Diggy default 350. This sets the price for the first level.
xp_fine_tune = 400, -- Diggy default 200. This value is used to fine tune the overall requirement climb without affecting the speed
cost_precision = 3, -- Diggy default 3. This sets the precision of the required experience to level up. E.g. 1234 becomes 1200 with precision 2 and 1230 with precision 3.
-- percentage * mining productivity level gets added to mining speed
mining_speed_productivity_multiplier = 5,
XP = {
['common'] = 5, -- base XP rewarded for all types of diggy entities unless otherwise specified here (Diggy default: 5)
['rocket_launch'] = 0.05, -- XP reward in percentage of total experience when a rocket launches (Diggy default: 0.05 which equals 5%)
['rocket_launch_max'] = 500000, -- Max XP reward from rocket launches (Diggy default: 500000)
['automation-science-pack'] = 4,
['logistic-science-pack'] = 8,
['chemical-science-pack'] = 15,
['military-science-pack'] = 12,
['production-science-pack'] = 25,
['utility-science-pack'] = 50,
['space-science-pack'] = 10,
['enemy_killed'] = 10, -- Base XP for killing biters and spitters.
['death-penalty'] = 0.0035, -- XP deduct in percentage of total experience when a player dies (Diggy default: 0.0035 which equals 0.35%)
--['cave-in-penalty'] = 100 -- XP lost every cave in.
['infinity-research'] = 0.60 -- XP reward in percentage of the required experience from current level to next level (Diggy default: 0.60 which equals 60%)
},
buffs = {
-- define new buffs here, they are handed out for each level
mining_speed = {value = 5, max = 10},
inventory_slot = {value = 1, max = 100},
-- double_level is the level interval for receiving a double bonus (Diggy default: 5 which equals every 5th level)
health_bonus = {value = 2.5, double_level = 5, max = 500}
},
-- add or remove a table entry to add or remove a unlockable item from the market.
unlockables = {
{level = 2, price = 4, name = 'wood'},
{level = 3, price = 5, name = 'stone-wall'},
{level = 4, price = 20, name = 'pistol'},
{level = 4, price = 5, name = 'firearm-magazine'},
{level = 5, price = 100, name = 'light-armor'},
{level = 6, price = 6, name = 'small-lamp'},
{level = 6, price = 5, name = 'raw-fish'},
{level = 8, price = 1, name = 'stone-brick'},
{level = 10, price = 85, name = 'shotgun'},
{level = 10, price = 4, name = 'shotgun-shell'},
{level = 12, price = 200, name = 'heavy-armor'},
{level = 14, price = 35, name = 'landfill'},
{level = 15, price = 85, name = 'submachine-gun'},
{level = 18, price = 10, name = 'piercing-rounds-magazine'},
{level = 18, price = 8, name = 'piercing-shotgun-shell'},
{level = 19, price = 2, name = 'rail'},
{level = 20, price = 50, name = 'locomotive'},
{level = 20, price = 350, name = 'modular-armor'},
{level = 21, price = 5, name = 'rail-signal'},
{level = 22, price = 5, name = 'rail-chain-signal'},
{level = 23, price = 15, name = 'train-stop'},
{level = 24, price = 35, name = 'cargo-wagon'},
{level = 24, price = 35, name = 'fluid-wagon'},
{level = 29, price = 750, name = 'power-armor'},
{level = 30, price = 30, name = 'logistic-robot'},
{level = 31, price = 200, name = 'personal-roboport-equipment'},
{level = 32, price = 20, name = 'construction-robot'},
{level = 34, price = 750, name = 'fusion-reactor-equipment'},
{level = 35, price = 150, name = 'battery-equipment'},
{level = 38, price = 250, name = 'exoskeleton-equipment'},
{level = 40, price = 125, name = 'energy-shield-equipment'},
{level = 42, price = 500, name = 'personal-laser-defense-equipment'},
{level = 44, price = 1250, name = 'power-armor-mk2'},
{level = 46, price = 750, name = 'battery-mk2-equipment'},
{level = 48, price = 550, name = 'combat-shotgun'},
{level = 51, price = 25, name = 'uranium-rounds-magazine'},
{level = 63, price = 250, name = 'rocket-launcher'},
{level = 63, price = 40, name = 'rocket'},
{level = 71, price = 80, name = 'explosive-rocket'},
{level = 78, price = 1000, name = 'satellite'},
{level = 100, price = 1, name = 'iron-stick'}
},
-- modifies the experience per alien type, higher is more xp
alien_experience_modifiers = {
['small-biter'] = 2,
['small-spitter'] = 2,
['small-worm-turret'] = 2,
['medium-biter'] = 3,
['medium-spitter'] = 3,
['medium-worm-turret'] = 3,
['big-biter'] = 5,
['big-spitter'] = 5,
['big-worm-turret'] = 5,
['behemoth-biter'] = 7,
['behemoth-spitter'] = 7,
['behemoth-worm-turret'] = 7
}
},
weapon_balance = {
enabled = true
}
}
}
return Config