LYNE v1.5.1

Custom Mode


Custom Mode was added in LYNE v1.5.1.
It allows a player to completely override the daily generator by editing a text file.

What you can do:
- Override the random number generator seed, set it to a specific number or set it to be random, allowing you to generate levels continuously forever without leaving the game.
- Override the date.
- Customise the level generator using the exact same data set I used to create the daily levels.
- Break the game.

Some downsides if enabled:
- Daily progress is reset every time you enter daily mode.
- You can not earn Trytes (triangles).
- The text file you edit is not saved to any cloud service.


Text file location

The text file you are looking for is lyne_custom_mode.txt. If the file does not exist, entering the daily mode once will create a default file.

Here are the locations of the text file per platform:
Windows: C:/Users/[USERNAME]/AppData/LocalLow/Thomas Bowker/LYNE/
Mac: ~/Library/Application Support/Thomas Bowker/LYNE

See https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html for more information about the file location.


Examples

-> Randomise the seed every time you enter daily mode. No other changes.
-> Replicate the daily levels in v1.4.5.
-> Everyday, just one big, dense, level.


Format

The text file is in JSON format, you can edit the text file while the game is running. The point at which the file is read is right before entering the daily mode from the main menu.

Here are the variables you'll find in the text file and what they do.

lyne_custom_mode_enabled - (true, false)
Global toggle for enabling the custom mode.

lyne_custom_log_enabled - (true, false)
Display the custom mode log in-game.

date_override_enabled - (true, false)
Toggle for enabling date override.

date_override - (string)
Date to override with in ddMMyyyy format.

seed_override_enabled - (true, false)
Toggle for enabling seed override.

seed_override - (int)
Seed to override with, set to -1 to randomise the seed every time.

level_sets_to_create - (int)
Override number of level sets to create. Range: 1 - 3.
Set to -1 to disable and use the default number of sets for that day.

theme_override_enabled - (true, false)
Toggle for enabling generator theme override.
If enabled, only the themes in the below array will be used.

generation_themes - (array)
Array of theme data.

stage_name - (string)
Name of the stage.

levels_to_generate - (int)
Number of levels to generate.
Often you will need to generate more levels than there are in the stage as the level generation can fail.

levels_in_stage - (int)
Levels in stage. Range: 1 - 25.

test_for_duplicate_levels - (true, false)
I have implemented a rough duplicate level check.
Most of the time you don't need this enabled at all.

size_min - (int, int)
size_max - (int, int)
Min and Max sizes for the levels to be generated.

lyne_type_num - (int)
Number of Lyne types to use in level generation. Range: 1 - 3.

lyne_length_per_cell_max - (float)
lyne_length_per_cell_min - (float)
Target LYNE length for each LYNE type, per level cell, based on size_min. eg 3x3 level = 9 cells.
You'll have to experiment with these values to feel out how they change the levels created but generally, higher values = denser levels. Higher values increase the chance the level generation will fail.
General ranges for min: 0.5 - 1.5
General ranges for max: 1.0 - 2.0

lyne_length_variance - (float)
Spreads out the target LYNE length per type randomly.
Mostly does not make a difference to levels created.
Range: 0.0 - 1.0. You could leave this at 0.2.

multi_crossing_max - (int)
Max number of crossings for multi cells allowed.
Range: 2 - 4.

multi_min - (int)
multi_max - (int)
Min and Max number of multi cells allowed in level, based on size_min.
(If the level generated is larger than size_min, this increases by 1 per row and column).
-1 = no limit.

reward_count - (int)
Unused in custom mode.

spawn_chance_mod - (float)
Modify the chance this theme will be chosen.
Eg. Theme A with mod 1.0 and Theme B with mod 0.5, theme B will be chosen roughly 1/3rd of the time.

spawn_day - (int)
0 = Monday, 6 = Sunday.
-1 = No day defined.
If no themes are defined for a day a random theme will be chosen, so if all themes are -1 all themes could be used for any day.