Skip to content

Commit 9cbc4fe

Browse files
committed
Added executable file, updated paths and readme
1 parent 512c465 commit 9cbc4fe

File tree

11 files changed

+5756
-1468
lines changed

11 files changed

+5756
-1468
lines changed

.github/workflows/release.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build:
10+
runs-on: windows-latest
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v4
14+
15+
- name: Set up Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: '22'
19+
20+
- name: Install dependencies
21+
run: npm install
22+
23+
- name: Build TypeScript
24+
run: npm run build
25+
26+
- name: Bundle with esbuild
27+
run: npm run build:bundle
28+
29+
- name: Generate SEA blob
30+
run: npm run build:blob
31+
32+
- name: Copy Node executable to ssib.exe
33+
run: npm run build:exe
34+
35+
- name: Inject SEA blob
36+
run: npm run build:inject
37+
38+
- name: Upload exe to GitHub Release
39+
uses: softprops/action-gh-release@v2
40+
with:
41+
files: ssib.exe
42+
env:
43+
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules
2-
dist/*
3-
output/*
2+
build
3+
output
4+
*.exe
5+
*.blob

Readme.md

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
1-
### Satisfactory Signs Image Builder
1+
# Satisfactory Signs Image Builder
22

3-
This typescript script converts an JPG image into Satisfactory blueprint files that can be later build in the game and create a "poster" of your image. It is using the awesome [etothepii4/satisfactory-file-parser](https://github.com/etothepii4/satisfactory-file-parser) that made it possible.
3+
This tool converts an JPG image into Satisfactory blueprint files that can be later build in the game and create a "poster" of your image. It is using the awesome [etothepii4/satisfactory-file-parser](https://github.com/etothepii4/satisfactory-file-parser) that made it possible.
4+
5+
This script creates a vanilla blueprint built from an array 1m Signs. It is not a mod, does not add anything extra to the game, works on local games as well as servers and should rather not be broken by any game updates (unless they change something with the Signs). The blueprint files can be easily shared with others just like other blueprints.
46

57
**Take this project as it is. It was my fun proof of concept side project and I am not intending to maintain it. It is quite simple so it can be easily modified.**
68

7-
Example of 64x64 image built with 1m Signs:
9+
Example of an 64x64 image built with 1m Signs:
810

911
![Preview](preview.png "Example of 64x64 image")
1012

11-
## How to build it
13+
## How to build the Blueprint files by using Windows executable
14+
15+
1. Download the pre compiled [ssib.exe](http://github.com/labmonkey/satisfactory-signs-image-builder/releases/latest/download/ssib.exe) file.
16+
2. Prepare your image.
17+
This script supports only JPG, square images that have sizes that are divisible by 32 (32x32, 64x64, 128x128 etc).
18+
3. Open your terminal in the directory of the executable and type `./ssib.exe <NAME> <PATH>`, where:
19+
- `NAME` is the desired name of the Blueprint in the game
20+
- `PATH` is the path of your source image file. The resulting blueprints will be in the `output` directory.
21+
22+
For example `./ssib.exe DOGE ./assets/doge64.jpg`
23+
24+
## How to build the Blueprint files by using NodeJS
25+
26+
1. You will need NodeJS. Download it from [https://nodejs.org/en/download](https://nodejs.org/en/download). I recommend the latest LTS version.
27+
2. Prepare your image.
28+
This script supports only JPG, square images that have sizes that are divisible by 32 (32x32, 64x64, 128x128 etc).
29+
3. Build the project. Open your terminal in this project directory and type `npm run build` then run it by `npm start <NAME> <PATH>`, where:
30+
- `NAME` is the desired name of the Blueprint in the game
31+
- `PATH` is the path of your source image file. The resulting blueprints will be in the `output` directory.
1232

13-
1. Prepare your image.
14-
This script supports only JPG, square images that have sizes are divisible by 32 so for example 32x32, 64x64, 128x128 etx. Easiest way is to place the image in the `assets` directory.
15-
1. Configure project.
16-
Go to `src/config.ts` and edit variables inside the `Configuration` section.
17-
- `imagePath`- Path to your image file.
18-
- `blueprintName` - Name of the output Blueprint files.
19-
2. Build the project `npm run build` and run it `npm start`
33+
For example `npm start DOGE ./assets/doge64.jpg`
2034

2135
## How to add it to the game
2236

@@ -26,20 +40,21 @@ Example of 64x64 image built with 1m Signs:
2640

2741
## How to build it in the game
2842

29-
This script is splitting images in to sections that have sizes of 32x32 pixels (Which are 32x32 1m Signs in the game).
43+
This script is splitting images in to sections that have sizes of 32x32 pixels (Which is an array of 32x32 1m Signs in the game).
3044

31-
Below is the layout of the way sections are created. Each section is named as `ROW x COLUMN` started from bottom left and going to top right. So for example with 6x64 image I will place Section 1x1 first, then 1x2 on the right side of it, then 2x1 on top of the 1x1 and so on.
45+
Below is the layout of the way sections are created. Each section is named as `ROW x COLUMN` started from bottom left and going to top right. So for example with 6x64 image you will place Section 1x1 first, then 1x2 on the right side of it, then 2x1 on top of the 1x1 and so on.
3246

33-
| | Column 1| Column 2 | Column B ...|
34-
| --------- | ------- | ------- | ----- |
35-
| Row A ... | Ax1 | Ax2 | AxB |
36-
| Row 2 | 2x1 | 2x2 | 2xB |
37-
| Row 1 | 1x1 | 1x2 | 1xB |
47+
| | Column 1 | Column 2 | Column B ... |
48+
| --------- | -------- | -------- | ------------ |
49+
| Row A ... | Ax1 | Ax2 | AxB |
50+
| Row 2 | 2x1 | 2x2 | 2xB |
51+
| Row 1 | 1x1 | 1x2 | 1xB |
3852

3953
## Few tips and notes about performance:
4054

4155
- The Signs do not snap that well so it might be easier to build a huge wall behind and then try to align the blueprint sections with it.
42-
- Each section costs 1024 x Reinforced Iron Plate and 5120 x Quartz Crystal. This requires a lot of inventory space and is only possible to be built in later stages of the game hen you unlock more inventory slots.
43-
- I did not notice performance drops after the "Poster" was built but there were noticable drops while building it.
56+
- Each section costs `1024 x Reinforced Iron Plate` and `5120 x Quartz Crystal`. This requires a lot of inventory space and is only possible to be built in later stages of the game when you unlock enough inventory slots (You need `37` slots).
57+
- I did not notice performance drops after the "Poster" of 64x64 was built. The bigger the image the worse it can get so be careful.
4458
- While you place the blueprint the hologram will cause big FPS drop but it will go back to normal as soon as you exit build mode.
45-
- There is some limit of how many Signs are loaded at same time so after you build it or load the "Poster" for the first time you will see that the signs will be slowly loaded and their contents replaced 1 by 1. In my 64x64 image it took about 30 second before it was fully loaded for first time.
59+
- There is some limit of how many Signs are loaded at same time so after you build it or load the "Poster" by being around it you will see that the signs will be slowly loaded and their contents replaced 1 by 1. In my 64x64 image it took about 30 second before it was fully loaded for first time.
60+
- The games saves memory and the signs are unloaded when you leave the area of your "Poster". It will load again when you get back to it but then it will do it slowly as explained in point above. This means that if you often leave your base then it will spend most time trying to load rather than displaying full picture.

eslint.config.mjs

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)