mirror of
https://github.com/k8s-at-home/charts.git
synced 2025-01-23 15:39:02 +00:00
[factorio]: add chart for factorio server (#1500)
This commit is contained in:
parent
b9ebbd8b93
commit
246c7f41a8
1
.github/ct-install.yaml
vendored
1
.github/ct-install.yaml
vendored
@ -11,6 +11,7 @@ excluded-charts:
|
||||
- charts/stable/alertmanager-discord
|
||||
- charts/stable/amcrest2mqtt
|
||||
- charts/stable/facebox
|
||||
- charts/stable/factorio
|
||||
- charts/stable/foundryvtt
|
||||
- charts/stable/heimdall
|
||||
- charts/stable/multus
|
||||
|
26
charts/stable/factorio/.helmignore
Normal file
26
charts/stable/factorio/.helmignore
Normal file
@ -0,0 +1,26 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
24
charts/stable/factorio/Chart.yaml
Normal file
24
charts/stable/factorio/Chart.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
apiVersion: v2
|
||||
appVersion: stable
|
||||
description: Factorio dedicated steam game server
|
||||
name: factorio
|
||||
version: 1.0.0
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- factorio
|
||||
- steam
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/factorio
|
||||
icon: https://factorio.com/static/img/factorio-wheel.png
|
||||
sources:
|
||||
- https://github.com/factoriotools/factorio-docker
|
||||
maintainers:
|
||||
- name: Truxnell
|
||||
email: nat@natallan.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.k8s-at-home.com
|
||||
version: 4.3.0
|
||||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- kind: added
|
||||
description: Initial version
|
111
charts/stable/factorio/README.md
Normal file
111
charts/stable/factorio/README.md
Normal file
@ -0,0 +1,111 @@
|
||||
# factorio
|
||||
|
||||
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
|
||||
|
||||
factorio helm package
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/factorio/factorio-docker>
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://library-charts.k8s-at-home.com | common | 4.0.0 |
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm repo update
|
||||
helm install factorio k8s-at-home/factorio
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `factorio`
|
||||
|
||||
```console
|
||||
helm install factorio k8s-at-home/factorio
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `factorio` deployment
|
||||
|
||||
```console
|
||||
helm uninstall factorio
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install factorio \
|
||||
--set env.TZ="America/New York" \
|
||||
k8s-at-home/factorio
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install factorio k8s-at-home/factorio -f values.yaml
|
||||
```
|
||||
|
||||
## Custom configuration
|
||||
|
||||
N/A
|
||||
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| env | object | See below | environment variables. See more environment variables in the [factorio documentation](https://factorio.org/docs). |
|
||||
| env.TZ | string | `"UTC"` | Set the container timezone |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
||||
| image.repository | string | `"factorio/factorio"` | image repository |
|
||||
| image.tag | string | `"1.0.0"` | image tag |
|
||||
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
|
||||
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
|
||||
| service | object | See values.yaml | Configures service settings for the chart. |
|
||||
|
||||
## Changelog
|
||||
|
||||
### Version 1.0.0
|
||||
|
||||
#### Added
|
||||
|
||||
- Initial version
|
||||
|
||||
#### Changed
|
||||
|
||||
N/A
|
||||
|
||||
#### Fixed
|
||||
|
||||
N/A
|
||||
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
79
charts/stable/factorio/README_CONFIG.md.gotmpl
Normal file
79
charts/stable/factorio/README_CONFIG.md.gotmpl
Normal file
@ -0,0 +1,79 @@
|
||||
{{- define "custom.custom.configuration.header" -}}
|
||||
## Custom configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.custom.configuration" -}}
|
||||
{{ template "custom.custom.configuration.header" . }}
|
||||
|
||||
### Cart credits
|
||||
|
||||
This chart is partially inspired by [https://github.com/SQLJames/factorio-server-charts](https://github.com/SQLJames/factorio-server-charts) and the yaml for the server settings defaults is sourced from here. Many thanks to @SQLJames for his work on that chart and the inspiration.
|
||||
|
||||
### Keeping server up to date
|
||||
|
||||
By default, this helm chart will follow `Factoriotools/Factorio:stable`. Game servers need to be kept up to date regularly, but you might not want it updating during gameplay with traffic being forwarded from your router through open ports
|
||||
The author recommends a approach of setting a `tag:` in your values.yaml to pin a specific version, and using a solution like [Renovate-bot](https://github.com/renovatebot/renovate) to control updates.
|
||||
This can be best achieved to pinning to a specific sha release, which allows you to set the tag to follow.
|
||||
|
||||
Note that by default renovate follows latest which can sometimes be undesirable for this image. The author notes that `stable` follows the version declared stable on [Factorio.com[(https://Factorio.com)] and on Steam, and `latest` can at times diverge into testing/beta releases (which require a Steam opt-in for downloading with traffic being forwarded from your router through open ports
|
||||
|
||||
### Pinning to one node
|
||||
|
||||
Whilst not best practice in k8s, it may be desirable to pin a game server to a node, so it is getting a paticular CPU (i.e. targeting best core performance).
|
||||
|
||||
```yaml
|
||||
# Prefer higher single core speed node
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 1
|
||||
preference:
|
||||
matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- <yourhostname>
|
||||
|
||||
```
|
||||
|
||||
### Map generation
|
||||
|
||||
This chart has yaml to allow you to pick map gen settings for first load. One way that *may* be eaiser to get a map howver, is to generate the map in your local game with the UI, ensure you are happy with it. You can run this helm once with default settings (to generate the folder structure in a PVC), spin it back down and mount the pvc in a test pod. You can then copy your generated `map.zip` to the container and spin it back up - the server will load the 'latest' save and run your map.
|
||||
|
||||
### Networking
|
||||
|
||||
Networking may be a challenge as Factorio uses UDP. One approach can be to use a load balancer in front of the service, with traffic being forwarded from your router through open ports pointed at the load balancer. A load balancer could be set in this chart, for example with this addition (using metallb for load-balancing):
|
||||
|
||||
```yaml
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
http:
|
||||
server:
|
||||
enabled: true
|
||||
type: LoadBalancer # Setting Ip external to cluster for easy port forward
|
||||
externalTrafficPolicy: Cluster
|
||||
loadBalancerIP: "192.168.2.100" # Set a IP here to ensure the game server is given a static internal IP
|
||||
annotations:
|
||||
metallb.universe.tf/allow-shared-ip: factorio
|
||||
ports:
|
||||
factorio-game:
|
||||
port: 34201
|
||||
protocol: UDP
|
||||
targetPort: 34197
|
||||
rcon:
|
||||
enabled: false
|
||||
type: LoadBalancer # Setting Ip external to cluster for easy port forward
|
||||
externalTrafficPolicy: Cluster
|
||||
loadBalancerIP: "192.168.2.100" # Set a IP here to ensure the game server is given a static internal IP
|
||||
annotations:
|
||||
metallb.universe.tf/allow-shared-ip: factorio
|
||||
ports:
|
||||
factorio-rcon:
|
||||
enabled: true
|
||||
port: 27015
|
||||
protocol: TCP
|
||||
targetPort: 27015
|
||||
```
|
||||
|
||||
{{- end -}}
|
1
charts/stable/factorio/templates/NOTES.txt
Normal file
1
charts/stable/factorio/templates/NOTES.txt
Normal file
@ -0,0 +1 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
106
charts/stable/factorio/templates/common.yaml
Normal file
106
charts/stable/factorio/templates/common.yaml
Normal file
@ -0,0 +1,106 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "common.values.setup" . }}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.server-settings.json" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/server-settings.json"
|
||||
subPath: "server-settings.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.factorioServer -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.server-settings.json" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.rconPassword" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/rconpw"
|
||||
subPath: "rconpw"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.rcon.password -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.rconPassword" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.map_gen_settings" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/map_gen_settings.json"
|
||||
subPath: "map_gen_settings.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.map_gen_settings -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.map_gen_settings" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.map_settings" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/map_settings.json"
|
||||
subPath: "map_settings.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.map_settings -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.map_settings" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.server-adminlist" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/server-adminlist.json"
|
||||
subPath: "server-adminlist.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.adminlist -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.server-adminlist" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.server-whitelist" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/server-whitelist.json"
|
||||
subPath: "server-whitelist.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.whitelist -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.server-whitelist" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/* Append the configMap volume to the volumes */}}
|
||||
{{- define "factorio.server-banlist" -}}
|
||||
enabled: "true"
|
||||
mountPath: "/helmconfig/server-banlist.json"
|
||||
subPath: "server-banlist.json"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ include "common.names.fullname" . }}-settings
|
||||
{{- end -}}
|
||||
{{- if .Values.config.banlist -}}
|
||||
{{- $_ := set .Values.persistence "factorio-config" (include "factorio.server-banlist" . | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "common.all" . }}
|
51
charts/stable/factorio/templates/configmap.yaml
Normal file
51
charts/stable/factorio/templates/configmap.yaml
Normal file
@ -0,0 +1,51 @@
|
||||
{{- if .Values.config -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}-settings
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- with .Values.config.server_settings -}}
|
||||
{{- if . }}
|
||||
server-settings.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.rcon.password -}}
|
||||
{{- if . }}
|
||||
rconpw: |
|
||||
{{ . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.map_gen_settings -}}
|
||||
{{- if . }}
|
||||
map-gen-settings.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.map_settings -}}
|
||||
{{- if . }}
|
||||
map-settings.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.admin_list -}}
|
||||
{{- if . }}
|
||||
server-adminlist.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.white_list -}}
|
||||
{{- if . }}
|
||||
server-whitelist.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Values.config.ban_list -}}
|
||||
{{- if . }}
|
||||
server-banlist.json: |
|
||||
{{ toPrettyJson . | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
373
charts/stable/factorio/values.yaml
Normal file
373
charts/stable/factorio/values.yaml
Normal file
@ -0,0 +1,373 @@
|
||||
#
|
||||
# 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"
|
Loading…
Reference in New Issue
Block a user