Custom level creation/meta.txt

From Turing Complete
wip
wip

This page descibes the early access verion 2.1.111 Beta. It may not be completely correct for the the current stable version, nor the latest unstable version. Help us update it, and you get a cookie.

meta.txt is a text file that lists a number of fields that describe the level, each field should start on a new line. While most of these are optional you should set at least:

  • kind
  • size
  • title
  • dialogue

Fields[edit | edit source]

  • kind: LevelKind
    • One of misc, combinational, sequential, architecture, factory
  • immutable_program: Bool
    • Player cannot edit the program in assembley enabled RAM & ROM
  • immutable_spec: Bool
    • Player cannot edit the spec.isa
  • overwrite_assembly: Bool
  • no_score: Bool
  • tests: SInt
    • Number of tests to run, defaults to 1
    • Will stop after first time check_output() returns fail.
  • title: String
    • Pretty name for display in game
  • default_isa_spec: String
  • default_assembly: String
  • no_panel: Bool
  • no_state_ui: Bool
  • no_controls: Bool
  • size: U16
    • Size of the allowed draw area
    • Ignored for architecture levels
  • unlocks_components: [ComponentKind]
  • components_available: {ComponentKind: SInt}
    • This overrides the default component list based on the level progression
    • Maximum number of allowed instances of ComponentKind
    • -1 means unlimited
    • If this option is specified then custom components will NOT be available unless the IO pins (com_cc_input: -1, com_cc_output: -1) are also listed.
  • add_components: {ComponentKind: SInt}
    • This adds to the default component list based on the level progression
    • -1 means unlimited
  • remove_components: [ComponentKind]
    • Exclude these Components from the build menu
  • tick_past_fail: SInt
    • Run this number of ticks, even after detecting a failure.
    • check_output() must return win on the last tick or the level cannot be completed. An early return win ignores this and can cause the level to succeed before then.
  • output_history_pins: SInt
    • Legacy, DO NOT USE for new levels.
    • For older levels that do not use ui.txt configures the display of IO pins on the bottom panel.
  • copy_solution_to_level: [String]
    • Note: Potentially broken parsing code, might copy stuff to weird locations on small mistakes
  • copy_solution_to_architecture: String
  • copy_solution_to_foundry: String
  • unlocks_info: String
  • unlocks_pages: [String]
    • Same Note
  • unlocks_special: [String]
    • Same Note
  • background: UInt
  • arch_input_word_size: SInt
  • next_level: String
  • dialogue: Dialogue
  • post_mortem_first_win: Dialogue
  • post_mortem: Dialogue

Dialogue[edit | edit source]

Dialogue describes a list of pages. Each page consists of an image and some formatted text.

As an example

dialogue = [
  (mentor_centered, "We measure the universe with numbers. So your machine must learn to count."),
  (info, "Treat the inputs as [ZERO] or [ONE] depending if they are [OFF] or [ON]. Add them together in binary, such that the result is either [ZERO] or [ONE].

As with normal addition, if the result cannot be described with one digit, set the carry to [ONE]."),
]

The "image" maybe one of:

  • mentor_centered
  • mentor_left
  • mentor_smile
  • info
    • a placeholder for no image, just left justified text.
  • info_centered
    • a placeholder for no image, just text centered on the page.
  • overture
    • Reserved for the Overture levels.

Formatting[edit | edit source]

Some basic text formatting is available.

Hints[edit | edit source]

To disable all custom components specify components_available with all of the allowed built-in components, excluding the IO pins.