Factorio
This tutorial explains how to set up a Factorio server in the Cobalt dashboard.
Adding a token
Immediately after creating the server, you may see the message Error when creating server game: Missing token in the console. This token is required for the server to appear in the game's search results.
TIP
This is an optional setting, you will still be able to connect to the server using IP.
Log in to your Factorio account.
Go to the profile page.
Copy the
usernameandtokenvalues.Go to the Cobalt dashboard.
Open the servers page.
Find the server you want to add token in the table and click the first button in the actions column.
Click the stop button in the control block.
Open the files tab at the top.
Open the
data/server-settings.jsonfile in the file editor.Insert the values for
usernameandtokeninto the appropriate fields.Click the save button in the bottom left corner.
Open the overview tab at the top.
Click the restart button in the control block.
Changing configs
Open the servers page.
Find the server you want to change settings in the table and click the first button in the actions column.
Click the stop button in the control block.
Open the files tab at the top.
map-gen-settings.jsonOpen the
data/map-gen-settings.jsonfile in the file editor.Update the settings.
List of settings
This table refers to version
2.0.77. Some settings may not be available in earlier versions.Key Type Default Description widthinteger 0Width of the map, in tiles. 0means infinite.heightinteger 0Height of the map, in tiles. 0means infinite.starting_areanumber 1Multiplier for the "biter free zone radius". peaceful_modeboolean falseEnables peaceful mode. true- enabledfalse- disabledautoplace_controls.coal.frequencynumber 1Frequency of coal ore patches. autoplace_controls.coal.sizenumber 1Size of coal ore patches. autoplace_controls.coal.richnessnumber 1Richness of coal ore patches. autoplace_controls.stone.frequencynumber 1Frequency of stone ore patches. autoplace_controls.stone.sizenumber 1Size of stone ore patches. autoplace_controls.stone.richnessnumber 1Richness of stone ore patches. autoplace_controls.copper-ore.frequencynumber 1Frequency of copper ore patches. autoplace_controls.copper-ore.sizenumber 1Size of copper ore patches. autoplace_controls.copper-ore.richnessnumber 1Richness of copper ore patches. autoplace_controls.iron-ore.frequencynumber 1Frequency of iron ore patches. autoplace_controls.iron-ore.sizenumber 1Size of iron ore patches. autoplace_controls.iron-ore.richnessnumber 1Richness of iron ore patches. autoplace_controls.uranium-ore.frequencynumber 1Frequency of uranium ore patches. autoplace_controls.uranium-ore.sizenumber 1Size of uranium ore patches. autoplace_controls.uranium-ore.richnessnumber 1Richness of uranium ore patches. autoplace_controls.crude-oil.frequencynumber 1Frequency of crude oil patches. autoplace_controls.crude-oil.sizenumber 1Size of crude oil patches. autoplace_controls.crude-oil.richnessnumber 1Richness of crude oil patches. autoplace_controls.water.frequencynumber 1Frequency of water. autoplace_controls.water.sizenumber 1Size of water bodies. autoplace_controls.trees.frequencynumber 1Frequency of trees. autoplace_controls.trees.sizenumber 1Size of tree clusters. autoplace_controls.enemy-base.frequencynumber 1Frequency of enemy bases. autoplace_controls.enemy-base.sizenumber 1Size of enemy bases. cliff_settings.namestring cliffName of the cliff prototype. cliff_settings.cliff_elevation_0number 10Elevation of the first row of cliffs. cliff_settings.cliff_elevation_intervalnumber 40Elevation difference between successive rows of cliffs. Inversely proportional to "frequency" in the map generation GUI - when set from the GUI, the value is 40 / frequency.cliff_settings.richnessnumber 1Called "cliff continuity" in the map generator GUI. 0results in no cliffs,10makes all cliff rows completely solid.property_expression_names.control:moisture:frequencystring 1Inverse of the "moisture scale" in the map generator GUI. property_expression_names.control:moisture:biasstring 0The "moisture bias" in the map generator GUI. property_expression_names.control:aux:frequencystring 1Inverse of the "terrain type scale" in the map generator GUI. property_expression_names.control:aux:biasstring 0The "terrain type bias" in the map generator GUI. starting_pointsarray [{"x": 0, "y": 0}]List of starting point coordinates for players. seedinteger nullWorld seed. Use nullfor a random seed, or a number for a specific seed.WARNING
After changing the settings, delete the
saves/map.zipfile so that the map will be regenerated when the server restarts.- Click the save button in the bottom left corner.
map-settings.jsonOpen the
data/map-settings.jsonfile in the file editor.Update the settings.
List of settings
This table refers to version
2.0.77. Some settings may not be available in earlier versions.Key Type Default Description difficulty_settings.technology_price_multipliernumber 1difficulty_settings.spoil_time_modifiernumber 1pollution.enabledboolean truepollution.diffusion_rationumber 0.02pollution.min_to_diffusenumber 15pollution.ageingnumber 1pollution.expected_max_per_chunknumber 150pollution.min_to_show_per_chunknumber 50pollution.min_pollution_to_damage_treesnumber 60pollution.pollution_with_max_forest_damagenumber 150pollution.pollution_per_tree_damagenumber 50pollution.pollution_restored_per_tree_damagenumber 10pollution.max_pollution_to_restore_treesnumber 20pollution.enemy_attack_pollution_consumption_modifiernumber 1enemy_evolution.enabledboolean trueenemy_evolution.time_factornumber 0.000004enemy_evolution.destroy_factornumber 0.002enemy_evolution.pollution_factornumber 0.0000009enemy_expansion.enabledboolean trueenemy_expansion.max_expansion_distancenumber 7enemy_expansion.friendly_base_influence_radiusnumber 2enemy_expansion.enemy_building_influence_radiusnumber 2enemy_expansion.building_coefficientnumber 0.1enemy_expansion.other_base_coefficientnumber 2.0enemy_expansion.neighbouring_chunk_coefficientnumber 0.5enemy_expansion.neighbouring_base_chunk_coefficientnumber 0.4enemy_expansion.max_colliding_tiles_coefficientnumber 0.9enemy_expansion.settler_group_min_sizenumber 5enemy_expansion.settler_group_max_sizenumber 20enemy_expansion.min_expansion_cooldownnumber 14400enemy_expansion.max_expansion_cooldownnumber 216000unit_group.min_group_gathering_timenumber 3600unit_group.max_group_gathering_timenumber 36000unit_group.max_wait_time_for_late_membersnumber 7200unit_group.max_group_radiusnumber 30.0unit_group.min_group_radiusnumber 5.0unit_group.max_member_speedup_when_behindnumber 1.4unit_group.max_member_slowdown_when_aheadnumber 0.6unit_group.max_group_slowdown_factornumber 0.3unit_group.max_group_member_fallback_factornumber 3unit_group.member_disown_distancenumber 10unit_group.tick_tolerance_when_member_arrivesnumber 60unit_group.max_gathering_unit_groupsnumber 30unit_group.max_unit_group_sizenumber 200steering.default.radiusnumber 1.2steering.default.separation_forcenumber 0.005steering.default.separation_factornumber 1.2steering.default.force_unit_fuzzy_goto_behaviorboolean falsesteering.moving.radiusnumber 3steering.moving.separation_forcenumber 0.01steering.moving.separation_factornumber 3steering.moving.force_unit_fuzzy_goto_behaviorboolean falsepath_finder.fwd2bwd_rationumber 5path_finder.goal_pressure_rationumber 2path_finder.max_steps_worked_per_ticknumber 1000path_finder.max_work_done_per_ticknumber 8000path_finder.use_path_cacheboolean truepath_finder.short_cache_sizenumber 5path_finder.long_cache_sizenumber 25path_finder.short_cache_min_cacheable_distancenumber 10path_finder.short_cache_min_algo_steps_to_cachenumber 50path_finder.long_cache_min_cacheable_distancenumber 30path_finder.cache_max_connect_to_cache_steps_multipliernumber 100path_finder.cache_accept_path_start_distance_rationumber 0.2path_finder.cache_accept_path_end_distance_rationumber 0.15path_finder.negative_cache_accept_path_start_distance_rationumber 0.3path_finder.negative_cache_accept_path_end_distance_rationumber 0.3path_finder.cache_path_start_distance_rating_multipliernumber 10path_finder.cache_path_end_distance_rating_multipliernumber 20path_finder.stale_enemy_with_same_destination_collision_penaltynumber 30path_finder.ignore_moving_enemy_collision_distancenumber 5path_finder.enemy_with_different_destination_collision_penaltynumber 30path_finder.general_entity_collision_penaltynumber 10path_finder.general_entity_subsequent_collision_penaltynumber 3path_finder.extended_collision_penaltynumber 3path_finder.max_clients_to_accept_any_new_requestnumber 10path_finder.max_clients_to_accept_short_new_requestnumber 100path_finder.direct_distance_to_consider_short_requestnumber 100path_finder.short_request_max_stepsnumber 1000path_finder.short_request_rationumber 0.5path_finder.min_steps_to_check_path_find_terminationnumber 2000path_finder.start_to_goal_cost_multiplier_to_terminate_path_findnumber 2000.0path_finder.overload_levelsarray [0, 100, 500]path_finder.overload_multipliersarray [2, 3, 4]path_finder.negative_path_cache_delay_intervalnumber 20asteroids.spawning_ratenumber 1asteroids.max_ray_portals_expanded_per_ticknumber 100max_failed_behavior_countnumber 3- Click the save button in the bottom left corner.
server-settings.jsonOpen the
data/server-settings.jsonfile in the file editor.Update the settings.
List of settings
This table refers to version
2.0.77. Some settings may not be available in earlier versions. Cobalt overrides some default values when a server is created.Key Type Default Description namestring (blank) Name of the game as it will appear in the game listing. descriptionstring (blank) Description of the game that will appear in the listing. tagsarray ["game", "tags"]Tags for the game listing. max_playersinteger 0Maximum number of players allowed, admins can join even a full server. 0means unlimited.visibility.publicboolean trueGame will be published on the official Factorio matching server. visibility.lanboolean trueGame will be broadcast on LAN. usernamestring (blank) Your factorio.com login credentials. Required for games with visibility public.passwordstring (blank) Your factorio.com login credentials. Required for games with visibility public.tokenstring (blank) Authentication token. May be used instead of passwordabove.game_passwordstring (blank) The password required for players to join the game. require_user_verificationboolean trueWhen set to true, the server will only allow clients that have a valid Factorio.com account.max_upload_in_kilobytes_per_secondinteger 0Optional, default value is 0.0means unlimited.max_upload_slotsinteger 5Optional, default value is 5.0means unlimited.minimum_latency_in_ticksinteger 0Optional, one tick is 16ms at default speed. Default value is 0.0means no minimum.max_heartbeats_per_secondinteger 60Network tick rate. Maximum rate game update packets are sent at before bundling them together. Minimum value is 6, maximum value is240.ignore_player_limit_for_returning_playersboolean falsePlayers that already played on this map can join even when the max player limit was reached. allow_commandsstring admins-onlyPossible values are true,false, andadmins-only.autosave_intervalinteger 10Autosave interval, in minutes. autosave_slotsinteger 5Server autosave slots. Cycled through when the server autosaves. afk_autokick_intervalinteger 0How many minutes until someone is kicked for doing nothing. 0for never.auto_pauseboolean trueWhether the server should be paused when no players are present. auto_pause_when_players_connectboolean falseWhether the server should be paused when someone is connecting to the server. only_admins_can_pause_the_gameboolean trueWhether only admins are allowed to pause the game. autosave_only_on_serverboolean trueWhether autosaves should be saved only on the server or also on all connected clients. Default is true.non_blocking_savingboolean falseHighly experimental feature, enable only at your own risk of losing your saves. On UNIX systems, the server will fork itself to create an autosave. Autosaving on connected Windows clients will be disabled regardless of the autosave_only_on_serveroption.minimum_segment_sizeinteger 25Long network messages are split into segments sent over multiple ticks. Their size depends on the number of peers currently connected. Increasing the segment size increases upload bandwidth requirements for the server and download bandwidth requirements for clients. This setting only affects server outbound messages. Changing these settings can negatively impact connection stability for some clients. minimum_segment_size_peer_countinteger 20See minimum_segment_sizeabove.maximum_segment_sizeinteger 100See minimum_segment_sizeabove.maximum_segment_size_peer_countinteger 10See minimum_segment_sizeabove.- Click the save button in the bottom left corner.
Open the overview tab at the top.
Click the restart button in the control block.
Adding mods
Open the servers page.
Find the server you want to add mods in the table and click the first button in the actions column.
Click the stop button in the control block.
Upload mods using one of the following methods:
File manager
Open the files tab at the top.
Open the
modsfolder in the file manager.Click the upload button in the bottom left corner.
Select the mods files from your device.
TIP
You can find mods on the Factorio Mods Portal.
- Click the upload button in the bottom right corner.
Open the overview tab at the top.
Click the restart button in the control block.