Skip to content

Microscope

jenki258 edited this page Aug 23, 2026 · 6 revisions

Microscope

#BioForge #BioForge_V2_0 #Build_V0_54T #Block #LegacyUpdated

Registry ID: bioforge:microscope.

#Blocks

Microscope

The Microscope is an analytical block that lets players examine biological samples (blood slides, virus samples, bone marrow, etc.) in detail.
It reveals the hidden infection data stored on a sample—pathogen type, symptoms, visibility level—but only after a calibration mini‑game is successfully completed.

How to Use

  1. Place the Microscope in the world.
  2. Right‑click it to open the GUI.
  3. Insert a valid sample (blood slide, virus sample, petri dish, etc.) into the sample slot (the only slot in the GUI).
  4. If the sample requires calibration, a calibration panel will appear on the right side of the GUI.
  5. Calibrate the microscope by adjusting the sliders until every handle turns green and shows a + symbol.
  6. Once calibrated, the symptom grid appears on the left, showing the sample’s infection properties.

Calibration Mini‑Game

Not all samples need calibration—only those that define a "calibration" block in the microscope data pack.
When calibration is required, the GUI shows one or more horizontal sliders stacked vertically.

  • Each slider has a hidden target value (randomised each time you insert a sample, if "random_target": true is set in the JSON).
  • Drag the handle until it turns green and displays a + symbol. This means the slider is within 5 % of the target.
  • You can also click on the track to jump to a position, or drag the handle.
  • Scroll wheel works inside the calibration panel area.

Only when all sliders are green does the symptom grid become visible.


Symptom Grid

Once calibration is complete (or if no calibration is needed), the symptom grid fills the left portion of the GUI.

  • Symptoms are displayed as small icons (16×16) with descriptive tooltips on hover.
  • The grid can be scrolled if there are more symptoms than visible rows, using the mouse wheel or a drag‑able scrollbar.

Symptom Types & Display

Type Icon Behaviour Tooltip
Boolean Custom icon when true, empty icon when false or missing e.g. “Fever: ON” or “Hypothermia: OFF”
Float Custom icon, shows percentage (or plain number) depending on display_percentage e.g. “Infection Strength: 85%”
Enum Different icons for each state (defined in states), falls back to default icon e.g. “Heart Rate: Tachycardia”

Per‑Item Configuration

The symptoms displayed for each sample type are defined in data pack JSON files located at data/bioforge/microscope/symptoms.json.
Each item can have its own set of entries, and optionally a "calibration" block.

{
  "items": {
    "bioforge:blood_slide": {
      "calibration": { ... },
      "entries": [ ... ]
    },
    ...
  }
}

Entry Fields

Field Type Required Description
symptom String Yes The internal symptom key (e.g. "heart_rate")
type String Yes "boolean", "float", or "enum"
icon ResourceLocation Yes Default icon texture
states Object Only for "enum" Mapping of lowercase state names to icons
min_visibility String No Minimum microscope_visibility level required (NONE‑EXTREME). Default "NONE".
source String No "strain" (infection strain) or "nbt" (direct NBT tag). Default "strain".
nbt_key String Only for "source": "nbt" The NBT tag key to read (e.g. "Growth")
condition String Only for "source": "nbt" Condition to display the symptom, e.g. ">=1"
display_percentage Boolean No Whether to show float values as percentages. Default true.

Microscope Visibility

Every infection strain contains a special symptom called microscope_visibility, which is automatically generated by the Incubator (or set manually).
It acts as a filter: a symptom with min_visibility: "MEDIUM" will only appear if the sample’s visibility is MEDIUM or higher.

This lets the microscope hide or reveal symptoms based on the “quality” of the sample—viral samples from the incubator may show more details than a crude field swab.


Adding New Sample Types

To make a new item compatible with the microscope:

  1. Add its item ID (e.g. "bioforge:my_sample") to the "items" object in the JSON.
  2. Define the "entries" array with the symptoms you want to display.
  3. Optionally add a "calibration" block with sliders.
  4. Reload the data packs with /reload.

No Java code changes are needed. The microscope will automatically accept the new item and show its configured symptoms.


Current test version: research integration

  • Unknown Gene Imprints are identified through Microscope analysis rather than revealing their target during extraction.
  • Symptom targets use localized names instead of raw IDs.
  • Dedicated button textures are supported by the current GUI.
  • Title and Inventory text color matches the Centrifuge/Incubator visual language.
  • The Microscope remains the information-reveal step for hidden genetic targets used by directed vaccines.

See CRISPR and Vaccine Maker.

Clone this wiki locally