Skip to content

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.

  1. Log in to your Factorio account.

  2. Go to the profile page.

  3. Copy the username and token values.

  4. Go to the Cobalt dashboard.

  5. Open the servers page.

  6. Find the server you want to add token in the table and click the first button in the actions column.

  7. Click the stop button in the control block.

  8. Open the files tab at the top.

  9. Open the data/server-settings.json file in the file editor.

  10. Insert the values for username and token into the appropriate fields.

  11. Click the save button in the bottom left corner.

  12. Open the overview tab at the top.

  13. Click the restart button in the control block.

Changing configs

  1. Open the servers page.

  2. Find the server you want to change settings in the table and click the first button in the actions column.

  3. Click the stop button in the control block.

  4. Open the files tab at the top.


    map-gen-settings.json

    1. Open the data/map-gen-settings.json file in the file editor.

    2. Update the settings.

    List of settings

    This table refers to version 2.0.77. Some settings may not be available in earlier versions.

    KeyTypeDefaultDescription
    widthinteger0Width of the map, in tiles. 0 means infinite.
    heightinteger0Height of the map, in tiles. 0 means infinite.
    starting_areanumber1Multiplier for the "biter free zone radius".
    peaceful_modebooleanfalseEnables peaceful mode.
    true - enabled
    false - disabled
    autoplace_controls.coal.frequencynumber1Frequency of coal ore patches.
    autoplace_controls.coal.sizenumber1Size of coal ore patches.
    autoplace_controls.coal.richnessnumber1Richness of coal ore patches.
    autoplace_controls.stone.frequencynumber1Frequency of stone ore patches.
    autoplace_controls.stone.sizenumber1Size of stone ore patches.
    autoplace_controls.stone.richnessnumber1Richness of stone ore patches.
    autoplace_controls.copper-ore.frequencynumber1Frequency of copper ore patches.
    autoplace_controls.copper-ore.sizenumber1Size of copper ore patches.
    autoplace_controls.copper-ore.richnessnumber1Richness of copper ore patches.
    autoplace_controls.iron-ore.frequencynumber1Frequency of iron ore patches.
    autoplace_controls.iron-ore.sizenumber1Size of iron ore patches.
    autoplace_controls.iron-ore.richnessnumber1Richness of iron ore patches.
    autoplace_controls.uranium-ore.frequencynumber1Frequency of uranium ore patches.
    autoplace_controls.uranium-ore.sizenumber1Size of uranium ore patches.
    autoplace_controls.uranium-ore.richnessnumber1Richness of uranium ore patches.
    autoplace_controls.crude-oil.frequencynumber1Frequency of crude oil patches.
    autoplace_controls.crude-oil.sizenumber1Size of crude oil patches.
    autoplace_controls.crude-oil.richnessnumber1Richness of crude oil patches.
    autoplace_controls.water.frequencynumber1Frequency of water.
    autoplace_controls.water.sizenumber1Size of water bodies.
    autoplace_controls.trees.frequencynumber1Frequency of trees.
    autoplace_controls.trees.sizenumber1Size of tree clusters.
    autoplace_controls.enemy-base.frequencynumber1Frequency of enemy bases.
    autoplace_controls.enemy-base.sizenumber1Size of enemy bases.
    cliff_settings.namestringcliffName of the cliff prototype.
    cliff_settings.cliff_elevation_0number10Elevation of the first row of cliffs.
    cliff_settings.cliff_elevation_intervalnumber40Elevation 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.richnessnumber1Called "cliff continuity" in the map generator GUI. 0 results in no cliffs, 10 makes all cliff rows completely solid.
    property_expression_names.control:moisture:frequencystring1Inverse of the "moisture scale" in the map generator GUI.
    property_expression_names.control:moisture:biasstring0The "moisture bias" in the map generator GUI.
    property_expression_names.control:aux:frequencystring1Inverse of the "terrain type scale" in the map generator GUI.
    property_expression_names.control:aux:biasstring0The "terrain type bias" in the map generator GUI.
    starting_pointsarray[{"x": 0, "y": 0}]List of starting point coordinates for players.
    seedintegernullWorld seed. Use null for a random seed, or a number for a specific seed.

    WARNING

    After changing the settings, delete the saves/map.zip file so that the map will be regenerated when the server restarts.

    1. Click the save button in the bottom left corner.

    map-settings.json

    1. Open the data/map-settings.json file in the file editor.

    2. Update the settings.

    List of settings

    This table refers to version 2.0.77. Some settings may not be available in earlier versions.

    KeyTypeDefaultDescription
    difficulty_settings.technology_price_multipliernumber1
    difficulty_settings.spoil_time_modifiernumber1
    pollution.enabledbooleantrue
    pollution.diffusion_rationumber0.02
    pollution.min_to_diffusenumber15
    pollution.ageingnumber1
    pollution.expected_max_per_chunknumber150
    pollution.min_to_show_per_chunknumber50
    pollution.min_pollution_to_damage_treesnumber60
    pollution.pollution_with_max_forest_damagenumber150
    pollution.pollution_per_tree_damagenumber50
    pollution.pollution_restored_per_tree_damagenumber10
    pollution.max_pollution_to_restore_treesnumber20
    pollution.enemy_attack_pollution_consumption_modifiernumber1
    enemy_evolution.enabledbooleantrue
    enemy_evolution.time_factornumber0.000004
    enemy_evolution.destroy_factornumber0.002
    enemy_evolution.pollution_factornumber0.0000009
    enemy_expansion.enabledbooleantrue
    enemy_expansion.max_expansion_distancenumber7
    enemy_expansion.friendly_base_influence_radiusnumber2
    enemy_expansion.enemy_building_influence_radiusnumber2
    enemy_expansion.building_coefficientnumber0.1
    enemy_expansion.other_base_coefficientnumber2.0
    enemy_expansion.neighbouring_chunk_coefficientnumber0.5
    enemy_expansion.neighbouring_base_chunk_coefficientnumber0.4
    enemy_expansion.max_colliding_tiles_coefficientnumber0.9
    enemy_expansion.settler_group_min_sizenumber5
    enemy_expansion.settler_group_max_sizenumber20
    enemy_expansion.min_expansion_cooldownnumber14400
    enemy_expansion.max_expansion_cooldownnumber216000
    unit_group.min_group_gathering_timenumber3600
    unit_group.max_group_gathering_timenumber36000
    unit_group.max_wait_time_for_late_membersnumber7200
    unit_group.max_group_radiusnumber30.0
    unit_group.min_group_radiusnumber5.0
    unit_group.max_member_speedup_when_behindnumber1.4
    unit_group.max_member_slowdown_when_aheadnumber0.6
    unit_group.max_group_slowdown_factornumber0.3
    unit_group.max_group_member_fallback_factornumber3
    unit_group.member_disown_distancenumber10
    unit_group.tick_tolerance_when_member_arrivesnumber60
    unit_group.max_gathering_unit_groupsnumber30
    unit_group.max_unit_group_sizenumber200
    steering.default.radiusnumber1.2
    steering.default.separation_forcenumber0.005
    steering.default.separation_factornumber1.2
    steering.default.force_unit_fuzzy_goto_behaviorbooleanfalse
    steering.moving.radiusnumber3
    steering.moving.separation_forcenumber0.01
    steering.moving.separation_factornumber3
    steering.moving.force_unit_fuzzy_goto_behaviorbooleanfalse
    path_finder.fwd2bwd_rationumber5
    path_finder.goal_pressure_rationumber2
    path_finder.max_steps_worked_per_ticknumber1000
    path_finder.max_work_done_per_ticknumber8000
    path_finder.use_path_cachebooleantrue
    path_finder.short_cache_sizenumber5
    path_finder.long_cache_sizenumber25
    path_finder.short_cache_min_cacheable_distancenumber10
    path_finder.short_cache_min_algo_steps_to_cachenumber50
    path_finder.long_cache_min_cacheable_distancenumber30
    path_finder.cache_max_connect_to_cache_steps_multipliernumber100
    path_finder.cache_accept_path_start_distance_rationumber0.2
    path_finder.cache_accept_path_end_distance_rationumber0.15
    path_finder.negative_cache_accept_path_start_distance_rationumber0.3
    path_finder.negative_cache_accept_path_end_distance_rationumber0.3
    path_finder.cache_path_start_distance_rating_multipliernumber10
    path_finder.cache_path_end_distance_rating_multipliernumber20
    path_finder.stale_enemy_with_same_destination_collision_penaltynumber30
    path_finder.ignore_moving_enemy_collision_distancenumber5
    path_finder.enemy_with_different_destination_collision_penaltynumber30
    path_finder.general_entity_collision_penaltynumber10
    path_finder.general_entity_subsequent_collision_penaltynumber3
    path_finder.extended_collision_penaltynumber3
    path_finder.max_clients_to_accept_any_new_requestnumber10
    path_finder.max_clients_to_accept_short_new_requestnumber100
    path_finder.direct_distance_to_consider_short_requestnumber100
    path_finder.short_request_max_stepsnumber1000
    path_finder.short_request_rationumber0.5
    path_finder.min_steps_to_check_path_find_terminationnumber2000
    path_finder.start_to_goal_cost_multiplier_to_terminate_path_findnumber2000.0
    path_finder.overload_levelsarray[0, 100, 500]
    path_finder.overload_multipliersarray[2, 3, 4]
    path_finder.negative_path_cache_delay_intervalnumber20
    asteroids.spawning_ratenumber1
    asteroids.max_ray_portals_expanded_per_ticknumber100
    max_failed_behavior_countnumber3
    1. Click the save button in the bottom left corner.

    server-settings.json

    1. Open the data/server-settings.json file in the file editor.

    2. 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.

    KeyTypeDefaultDescription
    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_playersinteger0Maximum number of players allowed, admins can join even a full server. 0 means unlimited.
    visibility.publicbooleantrueGame will be published on the official Factorio matching server.
    visibility.lanbooleantrueGame 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 password above.
    game_passwordstring(blank)The password required for players to join the game.
    require_user_verificationbooleantrueWhen set to true, the server will only allow clients that have a valid Factorio.com account.
    max_upload_in_kilobytes_per_secondinteger0Optional, default value is 0. 0 means unlimited.
    max_upload_slotsinteger5Optional, default value is 5. 0 means unlimited.
    minimum_latency_in_ticksinteger0Optional, one tick is 16ms at default speed. Default value is 0. 0 means no minimum.
    max_heartbeats_per_secondinteger60Network tick rate. Maximum rate game update packets are sent at before bundling them together. Minimum value is 6, maximum value is 240.
    ignore_player_limit_for_returning_playersbooleanfalsePlayers that already played on this map can join even when the max player limit was reached.
    allow_commandsstringadmins-onlyPossible values are true, false, and admins-only.
    autosave_intervalinteger10Autosave interval, in minutes.
    autosave_slotsinteger5Server autosave slots. Cycled through when the server autosaves.
    afk_autokick_intervalinteger0How many minutes until someone is kicked for doing nothing. 0 for never.
    auto_pausebooleantrueWhether the server should be paused when no players are present.
    auto_pause_when_players_connectbooleanfalseWhether the server should be paused when someone is connecting to the server.
    only_admins_can_pause_the_gamebooleantrueWhether only admins are allowed to pause the game.
    autosave_only_on_serverbooleantrueWhether autosaves should be saved only on the server or also on all connected clients. Default is true.
    non_blocking_savingbooleanfalseHighly 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_server option.
    minimum_segment_sizeinteger25Long 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_countinteger20See minimum_segment_size above.
    maximum_segment_sizeinteger100See minimum_segment_size above.
    maximum_segment_size_peer_countinteger10See minimum_segment_size above.
    1. Click the save button in the bottom left corner.

  5. Open the overview tab at the top.

  6. Click the restart button in the control block.

Adding mods

  1. Open the servers page.

  2. Find the server you want to add mods in the table and click the first button in the actions column.

  3. Click the stop button in the control block.

  4. Upload mods using one of the following methods:

File manager
  1. Open the files tab at the top.

  2. Open the mods folder in the file manager.

  3. Click the upload button in the bottom left corner.

  4. Select the mods files from your device.

TIP

You can find mods on the Factorio Mods Portal.

  1. Click the upload button in the bottom right corner.
  1. Open the overview tab at the top.

  2. Click the restart button in the control block.