about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md143
-rw-r--r--README.md116
-rw-r--r--apworld/CHANGELOG.md72
-rw-r--r--apworld/README.md48
-rw-r--r--client/CHANGELOG.md72
-rw-r--r--client/README.md90
-rw-r--r--client/archipelago.tscn167
7 files changed, 241 insertions, 467 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7ff116a --- /dev/null +++ b/CHANGELOG.md
@@ -0,0 +1,143 @@
1# lingo2-archipelago Releases
2
3## Legacy Client v6.7 - 2025-09-19
4
5- Added a compass overlay. This makes it clearer which direction corresponds to
6 which compass direction, which is useful since many location/item names
7 reference compass directions. It can be enabled in the settings screen on the
8 pause menu.
9- Compatability update for the changes in v6.6 of the apworld.
10
11Download:
12[lingo2-archipelago-client-v6.7.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v6.7.zip)<br/>
13Source:
14[v6.7](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v6.7)
15
16## Legacy Apworld v6.6 - 2025-09-19
17
18- Added options that make the requirements for Purple Ending and Cyan Ending
19 stricter. With the strict options on, players are required to have all purple
20 (level 1) letters in order to get Purple Ending, and all cyan (level 2)
21 letters to get Cyan Ending. These options are on by default.
22- Renamed several items and locations, mostly regarding changing relative
23 directions (left, right, etc) to compass directions. The colored SMILE panels
24 in Daedalus now have clearer names too.
25- Fixed some minor logic errors.
26
27Download:
28[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v6.6/lingo2.apworld)<br/>
29Template YAML:
30[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v6.6/Lingo%202.yaml)<br/>
31Source:
32[v6.6](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v6.6)
33
34## Legacy Client v5.6 - 2025-09-17
35
36- Letter locations will no longer reappear after being collected.
37- This also prevents a potential scenario in which it is impossible to access
38 the location "The Congruent - Obverse Yellow Puzzles" when door shuffle is
39 disabled.
40
41Download:
42[lingo2-archipelago-client-v5.6.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.6.zip)<br/>
43Source:
44[v5.6](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.6)
45
46## Legacy Client v5.5 - 2025-09-16
47
48- Compatability update for v5.5 of the apworld.
49
50Download:
51[lingo2-archipelago-client-v5.5.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.5.zip)<br/>
52Source:
53[v5.5](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.5)
54
55## Legacy Apworld v5.5 - 2025-09-16
56
57- Fixed a panel in The Ancient that was missing a symbol.
58- Fixed an issue where you could be expected to get S1 in The Darkroom without
59 having U.
60- Renamed a few locations.
61
62Download:
63[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v5.5/lingo2.apworld)<br/>
64Template YAML:
65[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v5.5/Lingo%202.yaml)<br/>
66Source:
67[v5.5](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v5.5)
68
69## Legacy Apworld v4.4 - 2025-09-14
70
71- Fixed panel set location names.
72
73Download:
74[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.4/lingo2.apworld)<br/>
75Template YAML:
76[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.4/Lingo%202.yaml)<br/>
77Source:
78[v4.4](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v4.4)
79
80## Legacy Client v4.4 - 2025-09-13
81
82- Added support for anti-collectable trap items.
83- Fixed entrance to The Jubilant not opening properly when using control center
84 color shuffle.
85- Fixed the location "The Entry (Colored Doors Area) - OPEN" not sending.
86- Fixed level 2 letters not activating properly when letter shuffle is set to
87 Item Cyan.
88- Messages are now cleared out when returning to the main menu.
89- The player is prevented from accidentally breaking roof access logic when
90 returning to Daedalus from Icarus.
91
92Download:
93[lingo2-archipelago-client-v4.4.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v4.4.zip)<br/>
94Source:
95[v4.4](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v4.4)
96
97## Legacy Apworld v4.3 - 2025-09-13
98
99- Added a location for the anti-collectable in The Repetitive.
100- Added trap items. These remove letters from your keyboard until you use the
101 Key Return in The Entry, similar to the anti-collectable in The Repetitive.
102 This can be controlled using the `trap_percentage` option, which defaults to
103 zero.
104- Fixed crash on load when using Python 3.11.
105
106Download:
107[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.3/lingo2.apworld)<br/>
108Template YAML:
109[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.3/Lingo%202.yaml)<br/>
110Source:
111[v4.3](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v4.3)
112
113## Legacy Client v3.3 - 2025-09-12
114
115- Fixed issue downloading large datapackages (such as TUNIC's).
116- Connection failures now show error messages.
117
118Download:
119[lingo2-archipelago-client-v3.3.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.3.zip)<br/>
120Source:
121[v3.3](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.3)
122
123## Legacy Client v3.2 - 2025-09-12
124
125- Initial release for testing. Features include door shuffle, letter shuffle,
126 and symbol shuffle.
127
128Download:
129[lingo2-archipelago-client-v3.2.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.2.zip)<br/>
130Source:
131[v3.2](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.2)
132
133## Legacy Apworld v3.2 - 2025-09-12
134
135- Initial release for testing. Features include door shuffle, letter shuffle,
136 and symbol shuffle.
137
138Download:
139[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v3.2/lingo2.apworld)<br/>
140Template YAML:
141[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v3.2/Lingo%202.yaml)<br/>
142Source:
143[v3.2](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v3.2)
diff --git a/README.md b/README.md index 1da3c2b..8b1a425 100644 --- a/README.md +++ b/README.md
@@ -9,17 +9,33 @@ This is a project that modifies the game
9[Lingo 2](https://www.lingothegame.com/lingo2.html) so that it can be played as 9[Lingo 2](https://www.lingothegame.com/lingo2.html) so that it can be played as
10part of an Archipelago multiworld game. 10part of an Archipelago multiworld game.
11 11
12## How To Play 12## Installation
13 13
14Here are the components needed in order to play: 141. Download the Lingo 2 Apworld from
15 15 [the releases page](https://code.fourisland.com/lingo2-archipelago/about/CHANGELOG.md).
16- **Apworld**: This is used by Archipelago to generate randomized Lingo 2 162. If you do not already have it, download and install the
17 worlds. 17 [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/).
18 - [Installation & FAQ](https://code.fourisland.com/lingo2-archipelago/about/apworld/README.md) 183. Double click on `lingo2.apworld` to install it, or copy it manually to the
19 - [Downloads](https://code.fourisland.com/lingo2-archipelago/about/apworld/CHANGELOG.md) 19 `custom_worlds` folder of your Archipelago installation.
20- **Client**: This is how Lingo 2 connects to an Archipelago multiworld. 20
21 - [Installation & FAQ](https://code.fourisland.com/lingo2-archipelago/about/client/README.md) 21## Joining a Multiworld game
22 - [Downloads](https://code.fourisland.com/lingo2-archipelago/about/client/CHANGELOG.md) 22
231. Open the Archipelago Launcher.
242. Select "Lingo 2 Client".
253. The first time you do this, Archipelago will prompt you for the location of
26 the Lingo 2 executable file ("Lingo2.exe"). You can find this by
27 right-clicking on Lingo 2 in Steam, going to "Manage", and clicking "Browse
28 local files".
294. Lingo 2 will open, and you will see a form asking for your connection
30 details. Enter the Archipelago address, slot name, and password into the
31 fields.
325. Press Connect.
336. Enjoy!
34
35To continue an earlier game, you can perform the exact same steps as above.
36
37**Note**: Running the randomizer modifies the game's memory. If you want to play
38the base game after playing the randomizer, you need to restart Lingo 2 first.
23 39
24## Frequently Asked Questions 40## Frequently Asked Questions
25 41
@@ -46,6 +62,27 @@ exceptions are:
46- The Hinterlands (this will probably be repurposed) 62- The Hinterlands (this will probably be repurposed)
47- The beta tester gift maps 63- The beta tester gift maps
48 64
65### Is my progress saved locally?
66
67Lingo 2 autosaves your progress every time you solve a puzzle, get a
68collectable, or interact with a keyholder. The randomizer generates a savefile
69name based on your Multiworld seed and slot number, so you should be able to
70seamlessly switch between multiworlds and even slots within a multiworld.
71
72The exception to this is different rooms created from the same multiworld seed.
73The client is unable to tell rooms in a seed apart (this is a limitation of the
74Archipelago API), so the client will use the same save file for the same slot in
75different rooms on the same seed. You can work around this by manually moving or
76removing the save folder from the users directory in Lingo 2's game files.
77
78If you play the base game again, you will see one or more save files with a long
79name that begins with "zzAP\_". These are the saves for your multiworlds. They
80can be safely deleted after you have completed the associated multiworld. It is
81not recommended to load these save files outside of the randomizer.
82
83A connection to Archipelago is required to resume playing a multiworld. This is
84because the set of items you have received is not stored locally.
85
49### What about wall snipes? 86### What about wall snipes?
50 87
51"Wall sniping" refers to the fact that you are able to solve puzzles on the 88"Wall sniping" refers to the fact that you are able to solve puzzles on the
@@ -95,10 +132,53 @@ before leaving solve mode, as the keyholder will still be considered to be
95"focused", even though it has moved. If you have already moved, though, there is 132"focused", even though it has moved. If you have already moved, though, there is
96another way to get your letters back: just use the Key Return in The Entry. 133another way to get your letters back: just use the Key Return in The Entry.
97 134
98## Project Details 135## Running from source
99 136
100There are multiple parts of this project: 137The randomizer is mostly written in Python and GDScript, which do not need to be
101 138compiled. However, there are three files that need to be generated before the
102- [Client](https://code.fourisland.com/lingo2-archipelago/about/client/README.md) 139apworld can be used.
103- [Apworld](https://code.fourisland.com/lingo2-archipelago/about/apworld/README.md) 140
104- [Data](https://code.fourisland.com/lingo2-archipelago/about/data/README.md) 141The first file is `data.binpb`, the datafile containing the randomizer logic.
142You can read about how to generate it on
143[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
144Once you have it, put it in a subfolder of `apworld` called `generated`.
145
146The second generated file is `data_pb2.py`. This file allows Archipelago to read
147the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
148of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
149to compile our proto file with a similar version.
150
151If you followed the steps to generate `data.binpb` and compiled the `datapacker`
152tool yourself, you will already have protobuf version 3.21.12 installed through
153vcpkg. You can then run a command similar to this in order to generate the
154python file.
155
156```shell
157.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
158 --python_out=apworld\generated\ .\proto\data.proto
159```
160
161The exact path to `protoc.exe` is going to depend on where vcpkg installed its
162packages. The above location is where Visual Studio will probably put it.
163
164The third generated file is `proto.gd`. This is the GDScript version of the
165previous file. We use a Godot script to generate it, which means
166[the Godot Editor](https://godotengine.org/download/) is required. From the root
167of the repository:
168
169```shell
170cd vendor\godobuf
171godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
172 --output=..\..\apworld\generated\proto.gd
173```
174
175If you are not on Windows, replace the forward slashes with backslashes as
176appropriate (and the caret with a forward slash). You will also probably need to
177replace "godot" at the start of the second line with a path to a Godot Editor
178executable.
179
180After generating those three files, the apworld should be functional. You can
181copy it into an Archipelago source tree (rename the folder `apworld` to `lingo2`
182if you do so) if you want to edit/debug the code. Otherwise, you can zip up the
183folder and rename it to `lingo2.apworld` in order to package it for
184distribution.
diff --git a/apworld/CHANGELOG.md b/apworld/CHANGELOG.md deleted file mode 100644 index 9637ee4..0000000 --- a/apworld/CHANGELOG.md +++ /dev/null
@@ -1,72 +0,0 @@
1# lingo2-archipelago Apworld Releases
2
3## v6.6 - 2025-09-19
4
5- Added options that make the requirements for Purple Ending and Cyan Ending
6 stricter. With the strict options on, players are required to have all purple
7 (level 1) letters in order to get Purple Ending, and all cyan (level 2)
8 letters to get Cyan Ending. These options are on by default.
9- Renamed several items and locations, mostly regarding changing relative
10 directions (left, right, etc) to compass directions. The colored SMILE panels
11 in Daedalus now have clearer names too.
12- Fixed some minor logic errors.
13
14Download:
15[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v6.6/lingo2.apworld)<br/>
16Template YAML:
17[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v6.6/Lingo%202.yaml)<br/>
18Source:
19[v6.6](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v6.6)
20
21## v5.5 - 2025-09-16
22
23- Fixed a panel in The Ancient that was missing a symbol.
24- Fixed an issue where you could be expected to get S1 in The Darkroom without
25 having U.
26- Renamed a few locations.
27
28Download:
29[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v5.5/lingo2.apworld)<br/>
30Template YAML:
31[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v5.5/Lingo%202.yaml)<br/>
32Source:
33[v5.5](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v5.5)
34
35## v4.4 - 2025-09-14
36
37- Fixed panel set location names.
38
39Download:
40[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.4/lingo2.apworld)<br/>
41Template YAML:
42[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.4/Lingo%202.yaml)<br/>
43Source:
44[v4.4](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v4.4)
45
46## v4.3 - 2025-09-13
47
48- Added a location for the anti-collectable in The Repetitive.
49- Added trap items. These remove letters from your keyboard until you use the
50 Key Return in The Entry, similar to the anti-collectable in The Repetitive.
51 This can be controlled using the `trap_percentage` option, which defaults to
52 zero.
53- Fixed crash on load when using Python 3.11.
54
55Download:
56[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.3/lingo2.apworld)<br/>
57Template YAML:
58[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v4.3/Lingo%202.yaml)<br/>
59Source:
60[v4.3](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v4.3)
61
62## v3.2 - 2025-09-12
63
64- Initial release for testing. Features include door shuffle, letter shuffle,
65 and symbol shuffle.
66
67Download:
68[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v3.2/lingo2.apworld)<br/>
69Template YAML:
70[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v3.2/Lingo%202.yaml)<br/>
71Source:
72[v3.2](https://code.fourisland.com/lingo2-archipelago/tag/?h=apworld-v3.2)
diff --git a/apworld/README.md b/apworld/README.md deleted file mode 100644 index 13374b2..0000000 --- a/apworld/README.md +++ /dev/null
@@ -1,48 +0,0 @@
1# Lingo 2 Apworld
2
3The Lingo 2 Apworld allows you to generate Archipelago Multiworlds containing
4Lingo 2.
5
6## Installation
7
81. Download the Lingo 2 Apworld from
9 [the releases page](https://code.fourisland.com/lingo2-archipelago/about/apworld/CHANGELOG.md).
102. If you do not already have it, download and install the
11 [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/).
123. Double click on `lingo2.apworld` to install it, or copy it manually to the
13 `custom_worlds` folder of your Archipelago installation.
14
15## Running from source
16
17The apworld is mostly written in Python, which does not need to be compiled.
18However, there are two files that need to be generated before the apworld can be
19used.
20
21The first file is `data.binpb`, the datafile containing the randomizer logic.
22You can read about how to generate it on
23[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
24Once you have it, put it in a subfolder of `apworld` called `generated`.
25
26The second generated file is `data_pb2.py`. This file allows Archipelago to read
27the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
28of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
29to compile our proto file with a similar version.
30
31If you followed the steps to generate `data.binpb` and compiled the `datapacker`
32tool yourself, you will already have protobuf version 3.21.12 installed through
33vcpkg. You can then run a command similar to this in order to generate the
34python file.
35
36```shell
37.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
38 --python_out=apworld\generated\ .\proto\data.proto
39```
40
41The exact path to `protoc.exe` is going to depend on where vcpkg installed its
42packages. The above location is where Visual Studio will probably put it.
43
44After generating those two files, the apworld should be functional. You can copy
45it into an Archipelago source tree (rename the folder `apworld` to `lingo2` if
46you do so) if you want to edit/debug the code. Otherwise, you can zip up the
47folder and rename it to `lingo2.apworld` in order to package it for
48distribution.
diff --git a/client/CHANGELOG.md b/client/CHANGELOG.md deleted file mode 100644 index 4f210b0..0000000 --- a/client/CHANGELOG.md +++ /dev/null
@@ -1,72 +0,0 @@
1# lingo2-archipelago Client Releases
2
3## v6.7 - 2025-09-19
4
5- Added a compass overlay. This makes it clearer which direction corresponds to
6 which compass direction, which is useful since many location/item names
7 reference compass directions. It can be enabled in the settings screen on the
8 pause menu.
9- Compatability update for the changes in v6.6 of the apworld.
10
11Download:
12[lingo2-archipelago-client-v6.7.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v6.7.zip)<br/>
13Source:
14[v6.7](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v6.7)
15
16## v5.6 - 2025-09-17
17
18- Letter locations will no longer reappear after being collected.
19- This also prevents a potential scenario in which it is impossible to access
20 the location "The Congruent - Obverse Yellow Puzzles" when door shuffle is
21 disabled.
22
23Download:
24[lingo2-archipelago-client-v5.6.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.6.zip)<br/>
25Source:
26[v5.6](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.6)
27
28## v5.5 - 2025-09-16
29
30- Compatability update for v5.5 of the apworld.
31
32Download:
33[lingo2-archipelago-client-v5.5.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.5.zip)<br/>
34Source:
35[v5.5](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.5)
36
37## v4.4 - 2025-09-13
38
39- Added support for anti-collectable trap items.
40- Fixed entrance to The Jubilant not opening properly when using control center
41 color shuffle.
42- Fixed the location "The Entry (Colored Doors Area) - OPEN" not sending.
43- Fixed level 2 letters not activating properly when letter shuffle is set to
44 Item Cyan.
45- Messages are now cleared out when returning to the main menu.
46- The player is prevented from accidentally breaking roof access logic when
47 returning to Daedalus from Icarus.
48
49Download:
50[lingo2-archipelago-client-v4.4.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v4.4.zip)<br/>
51Source:
52[v4.4](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v4.4)
53
54## v3.3 - 2025-09-12
55
56- Fixed issue downloading large datapackages (such as TUNIC's).
57- Connection failures now show error messages.
58
59Download:
60[lingo2-archipelago-client-v3.3.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.3.zip)<br/>
61Source:
62[v3.3](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.3)
63
64## v3.2 - 2025-09-12
65
66- Initial release for testing. Features include door shuffle, letter shuffle,
67 and symbol shuffle.
68
69Download:
70[lingo2-archipelago-client-v3.2.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.2.zip)<br/>
71Source:
72[v3.2](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.2)
diff --git a/client/README.md b/client/README.md deleted file mode 100644 index 99589c5..0000000 --- a/client/README.md +++ /dev/null
@@ -1,90 +0,0 @@
1# Lingo 2 Archipelago Client
2
3The Lingo 2 Archipelago Client is a mod for Lingo 2 that allows you to connect
4to an Archipelago Multiworld and randomize your game.
5
6## Installation
7
81. Download the Lingo 2 Archipelago Randomizer from
9 [the releases page](https://code.fourisland.com/lingo2-archipelago/about/client/CHANGELOG.md).
102. Open up Lingo 2, go to settings, and click View Game Data. This should open
11 up a folder in Windows Explorer.
123. Unzip the randomizer into the "maps" folder. Ensure that archipelago.tscn and
13 the Archipelago folder are both within the maps folder.
14
15**NOTE**: It is important that the major version number of your client matches
16the major version number of the apworld you generated with.
17
18## Joining a Multiworld game
19
201. Launch Lingo 2.
212. Click on Level Selection, and choose Archipelago from the list.
223. The selected player is generally ignored by the mod, and you don't even need
23 to ensure you use the same player between connections. However, if your
24 player name has a gift map associated with it, Lingo 2 will prioritize the
25 gift map over loading the mod, so in that case you should choose another
26 player.
274. Press Play.
285. Enter the Archipelago address, slot name, and password into the fields.
296. Press Connect.
307. Enjoy!
31
32To continue an earlier game, you can perform the exact same steps as above. You
33will probably have to re-select Archipelago from the Level Selection screen, as
34the game does not remember which level you were playing.
35
36**Note**: Running the randomizer modifies the game's memory. If you want to play
37the base game after playing the randomizer, you need to restart Lingo 2 first.
38
39## Running from source
40
41The mod is mostly written in GDScript, which is parsed and executed by Lingo 2
42itself, and thus does not need to be compiled. However, there are two files that
43need to be generated before the client can be run.
44
45The first file is `data.binpb`, the datafile containing the randomizer logic.
46You can read about how to generate it on
47[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
48Once you have it, put it in a subfolder of `client` called `generated`.
49
50The second generated file is `proto.gd`. This file allows Lingo 2 to read the
51datafile. We use a Godot script to generate it, which means
52[the Godot Editor](https://godotengine.org/download/) is required. From the root
53of the repository:
54
55```shell
56cd vendor\godobuf
57godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
58 --output=..\..\client\Archipelago\generated\proto.gd
59```
60
61If you are not on Windows, replace the forward slashes with backslashes as
62appropriate (and the caret with a forward slash). You will also probably need to
63replace "godot" at the start of the second line with a path to a Godot Editor
64executable.
65
66After generating those two files, the contents of the `client` folder (minus
67this README) can be pasted into the Lingo 2 maps directory as described above.
68
69## Frequently Asked Questions
70
71### Is my progress saved locally?
72
73Lingo 2 autosaves your progress every time you solve a puzzle, get a
74collectable, or interact with a keyholder. The randomizer generates a savefile
75name based on your Multiworld seed and slot number, so you should be able to
76seamlessly switch between multiworlds and even slots within a multiworld.
77
78The exception to this is different rooms created from the same multiworld seed.
79The client is unable to tell rooms in a seed apart (this is a limitation of the
80Archipelago API), so the client will use the same save file for the same slot in
81different rooms on the same seed. You can work around this by manually moving or
82removing the save file from the level1 save file directory.
83
84If you play the base game again, you will see one or more save files with a long
85name that begins with "zzAP\_". These are the saves for your multiworlds. They
86can be safely deleted after you have completed the associated multiworld. It is
87not recommended to load these save files outside of the randomizer.
88
89A connection to Archipelago is required to resume playing a multiworld. This is
90because the set of items you have received is not stored locally.
diff --git a/client/archipelago.tscn b/client/archipelago.tscn deleted file mode 100644 index da83b23..0000000 --- a/client/archipelago.tscn +++ /dev/null
@@ -1,167 +0,0 @@
1[gd_scene load_steps=11 format=2]
2
3[ext_resource path="user://maps/Archipelago/settings_buttons.gd" type="Script" id=4]
4[ext_resource path="user://maps/Archipelago/settings_screen.gd" type="Script" id=5]
5[ext_resource path="res://images/unchecked.png" type="Texture" id=7]
6[ext_resource path="res://images/checked.png" type="Texture" id=8]
7[ext_resource type="Theme" uid="uid://7w454egydi41" path="res://assets/themes/baseUI.tres" id="2_g4bvn"]
8
9[sub_resource type="StyleBoxFlat" id=1]
10bg_color = Color( 0, 0, 0, 0 )
11
12[sub_resource type="StyleBoxFlat" id=2]
13bg_color = Color( 1, 1, 1, 1 )
14border_width_left = 1
15border_width_top = 1
16border_width_right = 1
17border_width_bottom = 1
18border_color = Color( 1, 1, 0, 1 )
19border_blend = true
20corner_radius_top_left = 3
21corner_radius_top_right = 3
22corner_radius_bottom_right = 3
23corner_radius_bottom_left = 3
24expand_offset_left = 5.0
25expand_offset_right = 5.0
26expand_offset_top = 5.0
27expand_offset_bottom = 5.0
28
29[node name="settings_screen" type="Node2D"]
30script = ExtResource( 5 )
31
32[node name="Panel" type="Panel" parent="."]
33offset_right = 1920.0
34offset_bottom = 1080.0
35
36[node name="title" parent="Panel" type="Label"]
37offset_left = 0.0
38offset_top = 75.0
39offset_right = 1920.0
40offset_bottom = 225.0
41text = "ARCHIPELAGO"
42valign = 1
43horizontal_alignment = 1
44theme = ExtResource("2_g4bvn")
45
46[node name="credit" parent="Panel" type="Label"]
47visible = false
48offset_left = 1278.0
49offset_top = 974.0
50offset_right = 1868.0
51offset_bottom = 1034.0
52text = "Brenton Wildes"
53theme = ExtResource("2_g4bvn")
54
55[node name="connect_button" parent="Panel" type="Button"]
56offset_left = 255.0
57offset_top = 875.0
58offset_right = 891.0
59offset_bottom = 1025.0
60custom_colors/font_color_hover = Color( 1, 0.501961, 0, 1 )
61text = "CONNECT"
62theme = ExtResource("2_g4bvn")
63script = ExtResource( 4 )
64
65[node name="quit_button" parent="Panel" type="Button"]
66offset_left = 1102.0
67offset_top = 875.0
68offset_right = 1738.0
69offset_bottom = 1025.0
70custom_colors/font_color_hover = Color( 1, 0, 0, 1 )
71text = "BACK"
72theme = ExtResource("2_g4bvn")
73script = ExtResource( 4 )
74
75[node name="credit2" parent="Panel" type="Label"]
76offset_left = -105.0
77offset_top = 346.0
78offset_right = 485.0
79offset_bottom = 410.0
80custom_styles/normal = SubResource( 1 )
81text = "SERVER"
82align = 2
83theme = ExtResource("2_g4bvn")
84
85[node name="credit5" parent="Panel" type="Label"]
86offset_left = 1239.0
87offset_top = 422.0
88offset_right = 1829.0
89offset_bottom = 486.0
90custom_styles/normal = SubResource( 1 )
91text = "OPTIONS"
92theme = ExtResource("2_g4bvn")
93
94[node name="credit3" parent="Panel" type="Label"]
95offset_left = -105.0
96offset_top = 519.0
97offset_right = 485.0
98offset_bottom = 583.0
99custom_styles/normal = SubResource( 1 )
100text = "PLAYER"
101align = 2
102theme = ExtResource("2_g4bvn")
103
104[node name="credit4" parent="Panel" type="Label"]
105offset_left = -105.0
106offset_top = 704.0
107offset_right = 485.0
108offset_bottom = 768.0
109custom_styles/normal = SubResource( 1 )
110text = "PASSWORD"
111align = 2
112theme = ExtResource("2_g4bvn")
113
114[node name="server_box" type="LineEdit" parent="Panel"]
115offset_left = 502.0
116offset_top = 295.0
117offset_right = 1144.0
118offset_bottom = 445.0
119custom_colors/selection_color = Color( 0.482353, 0, 0, 1 )
120custom_colors/cursor_color = Color( 0, 0, 0, 1 )
121custom_colors/font_color = Color( 0, 0, 0, 1 )
122custom_styles/focus = SubResource( 2 )
123align = 1
124caret_blink = true
125
126[node name="player_box" type="LineEdit" parent="Panel"]
127offset_left = 502.0
128offset_top = 477.0
129offset_right = 1144.0
130offset_bottom = 627.0
131custom_colors/selection_color = Color( 0.482353, 0, 0, 1 )
132custom_colors/cursor_color = Color( 0, 0, 0, 1 )
133custom_colors/font_color = Color( 0, 0, 0, 1 )
134custom_styles/focus = SubResource( 2 )
135align = 1
136caret_blink = true
137
138[node name="password_box" type="LineEdit" parent="Panel"]
139offset_left = 502.0
140offset_top = 659.0
141offset_right = 1144.0
142offset_bottom = 809.0
143custom_colors/selection_color = Color( 0.482353, 0, 0, 1 )
144custom_colors/cursor_color = Color( 0, 0, 0, 1 )
145custom_colors/font_color = Color( 0, 0, 0, 1 )
146custom_styles/focus = SubResource( 2 )
147align = 1
148caret_blink = true
149
150[node name="AcceptDialog" type="AcceptDialog" parent="Panel"]
151offset_right = 83.0
152offset_bottom = 58.0
153
154[node name="VersionMismatch" type="ConfirmationDialog" parent="Panel"]
155offset_right = 83.0
156offset_bottom = 58.0
157
158[node name="connection_history" type="MenuButton" parent="Panel"]
159offset_left = 1239.0
160offset_top = 276.0
161offset_right = 1829.0
162offset_bottom = 372.0
163text = "connection history"
164flat = false
165
166[connection signal="pressed" from="Panel/connect_button" to="Panel/connect_button" method="_connect_pressed"]
167[connection signal="pressed" from="Panel/quit_button" to="Panel/quit_button" method="_back_pressed"]