about summary refs log tree commit diff stats

Lingo 2 Archipelago Client

The Lingo 2 Archipelago Client is a mod for Lingo 2 that allows you to connect to an Archipelago Multiworld and randomize your game.

Installation

  1. Download the Lingo 2 Archipelago Randomizer from the releases page.
  2. Open up Lingo 2, go to settings, and click View Game Data. This should open up a folder in Windows Explorer.
  3. Unzip the randomizer into the "maps" folder. Ensure that archipelago.tscn and the Archipelago folder are both within the maps folder.

NOTE: It is important that the major version number of your client matches the major version number of the apworld you generated with.

Joining a Multiworld game

  1. Launch Lingo 2.
  2. Click on Level Selection, and choose Archipelago from the list.
  3. The selected player is generally ignored by the mod, and you don't even need to ensure you use the same player between connections. However, if your player name has a gift map associated with it, Lingo 2 will prioritize the gift map over loading the mod, so in that case you should choose another player.
  4. Press Play.
  5. Enter the Archipelago address, slot name, and password into the fields.
  6. Press Connect.
  7. Enjoy!

To continue an earlier game, you can perform the exact same steps as above. You will probably have to re-select Archipelago from the Level Selection screen, as the game does not remember which level you were playing.

Note: Running the randomizer modifies the game's memory. If you want to play the base game after playing the randomizer, you need to restart Lingo 2 first.

Running from source

The mod is mostly written in GDScript, which is parsed and executed by Lingo 2 itself, and thus does not need to be compiled. However, there are two files that need to be generated before the client can be run.

The first file is data.binpb, the datafile containing the randomizer logic. You can read about how to generate it on its own README page. Once you have it, put it in a subfolder of client called generated.

The second generated file is proto.gd. This file allows Lingo 2 to read the datafile. We use a Godot script to generate it, which means the Godot Editor is required. From the root of the repository:

cd vendor\godobuf
godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
  --output=..\..\client\Archipelago\generated\proto.gd

If you are not on Windows, replace the forward slashes with backslashes as appropriate (and the caret with a forward slash). You will also probably need to replace "godot" at the start of the second line with a path to a Godot Editor executable.

After generating those two files, the contents of the client folder (minus this README) can be pasted into the Lingo 2 maps directory as described above.

Frequently Asked Questions

Is my progress saved locally?

Lingo 2 autosaves your progress every time you solve a puzzle, get a collectable, or interact with a keyholder. The randomizer generates a savefile name based on your Multiworld seed and slot number, so you should be able to seamlessly switch between multiworlds and even slots within a multiworld.

The exception to this is different rooms created from the same multiworld seed. The client is unable to tell rooms in a seed apart (this is a limitation of the Archipelago API), so the client will use the same save file for the same slot in different rooms on the same seed. You can work around this by manually moving or removing the save file from the level1 save file directory.

If you play the base game again, you will see one or more save files with a long name that begins with "zzAP_". These are the saves for your multiworlds. They can be safely deleted after you have completed the associated multiworld. It is not recommended to load these save files outside of the randomizer.

A connection to Archipelago is required to resume playing a multiworld. This is because the set of items you have received is not stored locally.

What about wall snipes?

"Wall sniping" refers to the fact that you are able to solve puzzles on the other side of opaque walls. The player is never expected to or required to do this in normal gameplay. This randomizer does not change how wall snipes work, but it will likewise never require the use of them.