Skip to content

Instantly share code, notes, and snippets.

@neonbyte1
Last active December 23, 2025 17:24
Show Gist options
  • Select an option

  • Save neonbyte1/9224bbe9ba55a5862c4642084afd0107 to your computer and use it in GitHub Desktop.

Select an option

Save neonbyte1/9224bbe9ba55a5862c4642084afd0107 to your computer and use it in GitHub Desktop.
Install unofficially Sea Block for Factorio 2.0

Sea Block for Factorio 2.0 (unofficially)

Warning

Sea Block and Angels Mods are currently being actively maintained by KiwiHawk to provide compatibility with Factorio 2.0. You can check the status of the project here. Original reddit post: here

Installation (Linux, via script)

Important

I deliberately decided against the Steam version in order to have a specific version of Factorio that works with Sea Block. The script below is intended for the Linux version. Perhaps a developer for Windows/PowerShell will be able to add a customized version.

  • You might need to edit the FACTORIO_ARCHIVE variable. Just download your desired version from the official Factorio download page and update the name of the achive inside the script.
  • You might want to edit the FACTORIO_BASE_DIRECTORY variable. I personally use it to store different versions of Factorio, depends on which mod pack I'm going to play.
  1. Copy the script below into a file (e.g. factorio_seablock_2.sh)
  2. Allow the script to be executed: chmod +x factorio_seablock_2.sh
  3. Optional: Update FACTORIO_ARCHIVE and / or FACTORIO_BASE_DIRECTORY or set them as environment variable before executing the script
  4. Run the script: ./factorio_seablock_2.sh (or if it's not v2.0.72: FACTORIO_ARCHIVE=factorio_linux_2.0.70.tar.xz ./factorio_seablock_2.sh
  5. Start the game (binary is by default located in ~/factorio/seablock-2-preview/bin/x64/factorio)
  6. Download missing mods from mod portal
  7. Optional: Create a desktop entry in ~/.local/share/applications/SeaBlock2.desktop:
[Desktop Entry]
Name=Sea Block 2
Comment=Sea Block (Factorio 2.0.72)
Exec=/home/<USERNAME>/factorio/seablock-2-preview/bin/x64/factorio
Icon=/home/<USERNAME>/factorio/seablock-2-preview/data/core/graphics/factorio.png
Terminal=false
Type=Application
Categories=Game;

Installation (Windows, manually)

Note

Either use Steam or download the latest or desired version from the official Factorio download page

  • Steam: mods are located in %AppData%/Factorio/mods
  • Non steam: mods are located inside the extracted directory (factorio/mods)
  1. Go to the SeaBlock repository, switch to the dev branch, click on Code > Download ZIP
    1. Extract the archive (SeaBlock-dev.zip)
    2. Navigate into the SeaBlock-dev directory
    3. Move the SeaBlock and SeaBlockMetaPack directories into the factorio mods directory
  2. Go to the SpaceMod repository, click on Code > Download ZIP
    1. Extract the archive (SpaceMod-main.zip)
    2. Rename the extracted SpaceMod-main directory into SpaceMod
    3. Move the SpaceMod directory into the factorio mods directory
  3. Go to the ScienceCostTweakerM repository, switch to the dev-merge-fixes branch, click on Code > Download ZIP
    1. Extract the archive (ScienceCostTweakerM-dev-merge-fixes.zip)
    2. Rename the extracted ScienceCostTweakerM-dev-merge-fixes directory into ScienceCostTweakerM
    3. Move the ScienceCostTweakerM directory into the factorio mods directory
  4. Go to the LandfillPainting repository, switch to the dev2.0 branch, click on Code > Download ZIP
    1. Extract the archive (LandfillPainting-dev2.0.zip)
    2. Navigate into the LandfillPainting-dev2.0 directory
    3. Move the LandfillPainting directory into the factorio mods directory
  5. Go to Arch666Angel mods repository, switch to dev2.0 branch, click on Code > Download ZIP
    1. Extract the archive (mods-dev2.0.zip)
    2. Navigate into the mods-dev2.0 directory
    3. Move the following directories into the factorio mods directory:
      • angelsbioprocessing
      • angelsrefining
      • angelssmelting
      • angelspetrochem
      • angelsaddons-storage
      • angelsbioprocessinggraphics
      • angelsrefininggraphics
      • angelspetrochemgraphics
      • angelssmeltinggraphics
  6. Go to bobs mods repository, switch to dev branch, click on Code > Download ZIP
    1. Extract the achive (bobsmods-dev.zip)
    2. Navigate into the bobsmods-dev directory
    3. Move the following directories into the factorio mod directory:
      • bobelectronics
      • boblibrary
      • boblogistics
      • bobores
      • bobplates
      • bobassembly
      • bobenemies
      • bobequipment
      • bobinserters
      • bobmining
      • bobmodules
      • bobpower
      • bobrevamp
      • bobtech
      • bobwarfare
  7. Go to the CircuitProcessing repository, switch to dev branch, click on Code > Download ZIP
    1. Extract the archive (CircuitProcessing-dev.zip)
    2. Navigate into the CircuitProcessing-dev directory
    3. Move the CircuitProcessing directory into the factorio mods directory
  8. Go to the reskins-bobs repository, switch to dev branch, click on Code > Download ZIP
    1. Extract the archive (reskins-bobs-dev.zip)
    2. Rename the extracted reskins-bobs directory into reskins-bobs
    3. Move the reskins-bobs directory into the factorio mods directory
  9. Go to the reskins-angels repository, switch to dev branch, click on Code > Download ZIP
    1. Extract the archive (reskins-angels-dev.zip)
    2. Rename the extracted reskins-angels-dev directory into reskins-angels
    3. Move the reskins-angels directory into the factorio mods directory
  10. Start the game (either via Steam or factorio/bin/x64/factorio)
  11. Download missing mods from mod portal
#!/usr/bin/env bash
set -e
if [ -z "${FACTORIO_ARCHIVE}" ]; then
FACTORIO_ARCHIVE=factorio_linux_2.0.72.tar.xz
fi
if [ -z "${FACTORIO_BASE_DIRECTORY}" ]; then
FACTORIO_BASE_DIRECTORY=~/factorio
fi
SEABLOCK_DIRECTORY_NAME=seablock-2-preview
SEABLOCK_DIRECTORY="${FACTORIO_BASE_DIRECTORY}/${SEABLOCK_DIRECTORY_NAME}"
SEABLOCK_MODS="${SEABLOCK_DIRECTORY}/mods"
SEABLOCK_TRUNK="${SEABLOCK_DIRECTORY}/trunk"
SEABLOCK_TRUNK_PACK=(
'SeaBlock/SeaBlock'
'SeaBlock/SeaBlockMetaPack'
'SpaceMod'
'ScienceCostTweakerM'
'Arch666Angel/angelsbioprocessing'
'Arch666Angel/angelsrefining'
'Arch666Angel/angelssmelting'
'Arch666Angel/angelspetrochem'
'Arch666Angel/angelsaddons-storage'
'Arch666Angel/angelsbioprocessinggraphics'
'Arch666Angel/angelsrefininggraphics'
'Arch666Angel/angelspetrochemgraphics'
'Arch666Angel/angelssmeltinggraphics'
'bobsmods/bobelectronics'
'bobsmods/boblibrary'
'bobsmods/boblogistics'
'bobsmods/bobores'
'bobsmods/bobplates'
'bobsmods/bobassembly'
'bobsmods/bobenemies'
'bobsmods/bobequipment'
'bobsmods/bobinserters'
'bobsmods/bobmining'
'bobsmods/bobmodules'
'bobsmods/bobpower'
'bobsmods/bobrevamp'
'bobsmods/bobtech'
'bobsmods/bobwarfare'
'CircuitProcessing/CircuitProcessing'
'LandfillPainting/LandfillPainting'
'reskins-angels'
'reskins-bobs'
)
if [ ! -d "${SEABLOCK_DIRECTORY}" ]; then
if [ ! -f "${FACTORIO_ARCHIVE}" ]; then
printf -- "Unable to locate %s\n" "${FACTORIO_ARCHIVE}"
exit 1
fi
mkdir -p "${FACTORIO_BASE_DIRECTORY}"
if [ -d "${FACTORIO_BASE_DIRECTORY}/factorio" ]; then
printf -- "There is already a factorio directory inside of %s\n" "${FACTORIO_BASE_DIRECTORY}"
exit 1
fi
tar -xf factorio_linux_2.0.72.tar.xz -C "${FACTORIO_BASE_DIRECTORY}"
mv "${FACTORIO_BASE_DIRECTORY}/factorio" "${SEABLOCK_DIRECTORY}"
fi
# Ensure both directories exist
mkdir -p "${SEABLOCK_MODS}"
mkdir -p "${SEABLOCK_TRUNK}"
function clone_and_checkout() {
cd "${SEABLOCK_TRUNK}"
local dir="${1}"
local repo="${2}"
local branch="${3}"
if [ ! -d "$dir" ]; then
git clone "${repo}" "${dir}"
cd "${dir}"
if [ -n "${branch}" ]; then
git checkout "${branch}"
fi
else
cd "$dir"
git pull --ff-only
fi
}
function create_symlink() {
local target="${1}"
local dest="${SEABLOCK_MODS}/${target##*/}"
if [ -e "${dest}" ] || [ -L "${dest}" ]; then
if [ -L "$dest" ]; then
printf -- "Skipping: %s is already a symlink\n" "${dest}"
return 0
fi
if [ -d "${dest}" ]; then
printf -- "Error: %s is a directory" "${dest}" >&2
return 1
fi
fi
ln -s "${SEABLOCK_TRUNK}/${target}" "${dest}"
}
clone_and_checkout SeaBlock \
https://github.com/KompetenzAirbag/SeaBlock \
dev
clone_and_checkout SpaceMod \
https://github.com/elvanaud/SpaceMod
clone_and_checkout ScienceCostTweakerM \
https://github.com/KompetenzAirbag/ScienceCostTweakerM \
dev-merge-fixes
clone_and_checkout LandfillPainting \
https://github.com/sarcastic-coder/LandfillPainting \
dev2.0
clone_and_checkout Arch666Angel \
https://github.com/Arch666Angel/mods \
dev2.0
clone_and_checkout bobsmods \
https://github.com/modded-factorio/bobsmods \
dev
clone_and_checkout CircuitProcessing \
https://github.com/KompetenzAirbag/CircuitProcessing \
dev
clone_and_checkout reskins-bobs \
https://github.com/kirazy/reskins-bobs \
dev
clone_and_checkout reskins-angels \
https://github.com/kirazy/reskins-angels \
dev
for trunk_mod in "${SEABLOCK_TRUNK_PACK[@]}"; do
if [ -d "${SEABLOCK_TRUNK}/${trunk_mod}" ]; then
create_symlink "${trunk_mod}"
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment