charts/charts/stable/factorio/values.yaml

374 lines
13 KiB
YAML

#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#
image:
# -- image repository
repository: factoriotools/factorio
# -- image tag
# @default -- chart.appVersion
tag:
# -- image pull policy
pullPolicy: IfNotPresent
initContainers:
# -- Configures an initContainer that copies the configmap to the factorio conf directory
# @default -- See values.yaml
copy-configmap:
image: busybox
imagePullPolicy: IfNotPresent
command:
- "sh"
- "-c"
- |
mkdir -p /factorio/config
cp -vL /helmconfig/* /factorio/config/
volumeMounts:
- name: factorio-config
mountPath: /helmconfig/
- name: config
mountPath: /factorio/
securityContext:
runAsUser: 0
# -- environment variables. See more environment variables in the [factorio documentation](https://factorio.org/docs).
# @default -- See below
env:
# -- Set the container timezone
TZ: UTC
# -- Generate a new save if one does not exist before starting the server
GENERATE_NEW_SAVE: "{{ .Values.config.factorioServer.generate_new_save }}"
# -- Load latest when true. Otherwise load SAVE_NAME
LOAD_LATEST_SAVE: "{{ .Values.config.factorioServer.load_latest_save }}"
# -- UDP port the server listens on
PORT: "{{ .Values.service.main.ports.server.port }}"
# -- TCP port the rcon server listens on
RCON_PORT: "{{ .Values.service.main.ports.rcon.port }}"
# -- Name to use for the save file
SAVE_NAME: "{{ .Values.config.factorioServer.save_name }}"
# -- factorio.com token
TOKEN: "{{ .Values.config.factorioServer.token }}"
# -- If mods should be updated befoqre starting the server
UPDATE_MODS_ON_START: "{{ .Values.config.factorioServer.update_mods_on_start }}"
# -- factorio.com username
USERNAME: "{{ .Values.config.factorioServer.username }}"
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
http:
enabled: false
primary: false
server:
enabled: true
port: 34197
protocol: UDP
rcon:
enabled: true
primary: true
port: 27015
protocol: TCP
ingress:
# -- Enable and configure ingress settings for the chart under this key.
# @default -- See values.yaml
main:
enabled: false
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
config:
enabled: true
mountPath: /factorio
# -- Configure server settings. Can be disabled if you wish to configure in the container in the json config files.
# -- See values.yaml for descriptions for many config options, ore refer to https://wiki.factorio.com/Multiplayer.
# @default -- See values.yaml
config:
factorioServer:
# -- name to be used for save
save_name: "_autosave1"
# -- Generate a New Save
generate_new_save: false
# -- Update mods on start
update_mods_on_start: false
# -- lets the game know if you want to load the latest save
load_latest_save: true
# -- factorio.com token
token:
# -- factorio.com password
username:
server_settings:
# -- Your Instance Name
name: Factorio
# -- Your Instance Description
description: "Factorio running on Kubernetes"
tags:
- game
- tags
# -- Maximum number of players allowed, admins can join even a full server. 0 means unlimited.
max_players: 0
# -- Game visibility
visibility:
# -- Game will be published on the official Factorio matching server
public: false
# -- Game will be broadcast on LAN
lan: true
# -- Your factorio.com login credentials. Required for games with visibility public
username: ""
password: ""
# -- Authentication token. May be used instead of password above.
token: ""
# -- password required to log into the factorio server
game_password: ""
# -- When set to true, the server will only allow clients that have a valid Factorio.com account
require_user_verification: false
# -- optional, default value is 0. 0 means unlimited.
max_upload_in_kilobytes_per_second: 0
# -- optional, default value is 5. 0 means unlimited.
max_upload_slots: 5
# -- optional one tick is 16ms in default speed, default value is 0. 0 means no minimum.
minimum_latency_in_ticks: 0
# -- Players that played on this map already can join even when the max player limit was reached.
ignore_player_limit_for_returning_players: false
# -- possible values are, true, false and admins-only
allow_commands: admins-only
# -- Autosave interval in minutes
autosave_interval: 10
# -- server autosave slots, it is cycled through when the server autosaves.
autosave_slots: 5
# -- How many minutes until someone is kicked when doing nothing, 0 for never.
afk_autokick_interval: 0
# -- Whether should the server be paused when no players are present.
auto_pause: true
# -- specifies if anyone can pause or only admins
only_admins_can_pause_the_game: true
# -- Whether autosaves should be saved only on server or also on all connected clients. Default is true.
autosave_only_on_server: true
# -- Highly experimental feature, enable only at your own
# -- risk of losing your saves. On UNIX systems, server will fork itself to create an
# -- autosave. Autosaving on connected Windows clients will be disabled regardless of
# -- autosave_only_on_server option.
non_blocking_saving: false
# -- Long network messages are split into segments that are sent
# -- over multiple ticks. Their size depends on the number of peers currently connected.
# -- Increasing the segment size will increase upload bandwidth requirement for the server
# -- and download bandwidth requirement for clients. This setting only affects server
# -- outbound messages. Changing these settings can have a negative impact on connection
# -- stability for some clients.
minimum_segment_size: 25
minimum_segment_size_peer_count: 20
maximum_segment_size: 100
maximum_segment_size_peer_count: 10
# -- Password and port for the rcon service
rcon:
external: true
type: LoadBalancer
password: "replaceme"
port: 30100
map_gen_settings:
# --The inverse of water scale in the map generator GUI.
terrain_segmentation: 1
# -- The equivalent to water coverage in the map generator GUI. Higher coverage means
# -- more water in larger oceans.
# -- Water level = 10 * log2(this value)
water: 1
# -- Width and height of map, in tiles; 0 means infinite
width: 0
# -- Width and height of map, in tiles; 0 means infinite
height: 0
# -- Multiplier for biter free zone radius
starting_area: 1
peaceful_mode: false
autoplace_controls:
coal:
frequency: 1
size: 1
richness: 1
stone:
frequency: 1
size: 1
richness: 1
copper-ore:
frequency: 1
size: 1
richness: 1
iron-ore:
frequency: 1
size: 1
richness: 1
uranium-ore:
frequency: 1
size: 1
richness: 1
crude-oil:
frequency: 1
size: 1
richness: 1
trees:
frequency: 1
size: 1
richness: 1
enemy-base:
frequency: 1
size: 1
richness: 1
cliff_settings:
# -- Name of the cliff prototype
name: cliff
# -- Elevation of first row of cliffs
cliff_elevation_0: 10
# -- Elevation difference between successive rows of cliffs.
# -- This is inversely proportional to frequency in the map generation GUI. Specifically, when set from the GUI the value is 40 / frequency.
cliff_elevation_interval: 40
# -- Called cliff continuity in the map generator GUI. 0 will result in no cliffs, 10 will make all cliff rows completely solid
richness: 1
# -- Overrides for property value generators (map type)
# -- Leave elevation blank to get normal terrain.
# -- Use ''elevation'': ''0_16-elevation'' to reproduce terrain from 0.16.
# -- Use ''elevation'': ''0_17-island'' to get an island.
# -- Moisture and terrain type are also controlled via this.
# -- "control-setting:moisture:frequency:multiplier is the inverse of the moisture scale in the map generator GUI."
# -- "control-setting:moisture:bias is the moisture bias in the map generator GUI."
# -- "control-setting:aux:frequency:multiplier is the inverse of the terrain type scale in the map generator GUI."
# -- "control-setting:aux:bias is the teraain type bias in the map generator GUI."
property_expression_names:
control-setting:moisture:frequency:multiplier: "1"
control-setting:moisture:bias: "0"
control-setting:aux:frequency:multiplier: "1"
control-setting:aux:bias: "0"
starting_points:
- "x": 0
"y": 0
# -- Use null for a random seed, number for a specific seed.
seed: null
map_settings:
difficulty_settings:
recipe_difficulty: 0
technology_difficulty: 0
technology_price_multiplier: 1
research_queue_setting: after-victory
pollution:
enabled: true
# -- these are values for 60 ticks (1 simulated second)
# -- amount that is diffused to neighboring chunk
diffusion_ratio: 0.02
min_to_diffuse: 15
ageing: 1
expected_max_per_chunk: 150
min_to_show_per_chunk: 50
min_pollution_to_damage_trees: 60
pollution_with_max_forest_damage: 150
pollution_per_tree_damage: 50
pollution_restored_per_tree_damage: 10
max_pollution_to_restore_trees: 20
enemy_attack_pollution_consumption_modifier: 1
enemy_evolution:
enabled: true
time_factor: 0.000004
destroy_factor: 0.002
pollution_factor: 0.0000009
enemy_expansion:
enabled: true
min_base_spacing: 3
max_expansion_distance: 7
friendly_base_influence_radius: 2
enemy_building_influence_radius: 2
building_coefficient: 0.1
other_base_coefficient: 2
neighbouring_chunk_coefficient: 0.5
neighbouring_base_chunk_coefficient: 0.4
max_colliding_tiles_coefficient: 0.9
settler_group_min_size: 5
settler_group_max_size: 20
min_expansion_cooldown: 14400
max_expansion_cooldown: 216000
unit_group:
min_group_gathering_time: 3600
max_group_gathering_time: 36000
max_wait_time_for_late_members: 7200
max_group_radius: 30
min_group_radius: 5
max_member_speedup_when_behind: 1.4
max_member_slowdown_when_ahead: 0.6
max_group_slowdown_factor: 0.3
max_group_member_fallback_factor: 3
member_disown_distance: 10
tick_tolerance_when_member_arrives: 60
max_gathering_unit_groups: 30
max_unit_group_size: 200
steering:
default:
radius: 1.2
separation_force: 0.005
separation_factor: 1.2
force_unit_fuzzy_goto_behavior: false
moving:
radius: 3
separation_force: 0.01
separation_factor: 3
force_unit_fuzzy_goto_behavior: false
path_finder:
fwd2bwd_ratio: 5
goal_pressure_ratio: 2
max_steps_worked_per_tick: 100
max_work_done_per_tick: 8000
use_path_cache: true
short_cache_size: 5
long_cache_size: 25
short_cache_min_cacheable_distance: 10
short_cache_min_algo_steps_to_cache: 50
long_cache_min_cacheable_distance: 30
cache_max_connect_to_cache_steps_multiplier: 100
cache_accept_path_start_distance_ratio: 0.2
cache_accept_path_end_distance_ratio: 0.15
negative_cache_accept_path_start_distance_ratio: 0.3
negative_cache_accept_path_end_distance_ratio: 0.3
cache_path_start_distance_rating_multiplier: 10
cache_path_end_distance_rating_multiplier: 20
stale_enemy_with_same_destination_collision_penalty: 30
ignore_moving_enemy_collision_distance: 5
enemy_with_different_destination_collision_penalty: 30
general_entity_collision_penalty: 10
general_entity_subsequent_collision_penalty: 3
extended_collision_penalty: 3
max_clients_to_accept_any_new_request: 10
max_clients_to_accept_short_new_request: 100
direct_distance_to_consider_short_request: 100
short_request_max_steps: 1000
short_request_ratio: 0.5
min_steps_to_check_path_find_termination: 2000
start_to_goal_cost_multiplier_to_terminate_path_find: 500
overload_levels:
- 0
- 100
- 500
overload_multipliers:
- 2
- 3
- 4
negative_path_cache_delay_interval: 20
max_failed_behavior_count: 3
admin_list:
# - "john_doe"
# - "jane_doe"
white_list:
# - "john_doe"
# - "jane_doe"
ban_list:
# - "john_doe"
# - "jane_doe"