Skip to main content

Schematic Recipes

Schematic Recipes are a custom recipe format that allows one to unlock any object for a Tardis.

It is highly flexible and made generic for Datapack Creators and Map Creators.


Background

Schematics are a custom format of JSON files which that allow an object to be unlocked.

It is made up of two parts:

  • Schematic
  • Schematic Type

Schematic [For Datapack Creators]

Schematics are a format of JSON file that holds basic data about what object can be unlocked.

It is paired with the JSON format of a SchematicType added by either the Tardis Mod or an Addon Mod.

{
     "type:"tardis:console", - This is the Schematic Type's Registry ID
     "display_name":"Steam Console", - Display text for users
     "translated": false, - If this Schematic will use Language files to populate its display name. If true, use a translation key such as "schematic.mymod.my_schematic"
     [Schematic Type's extra data here] - This can be anything ranging from a simple "result" field defining the result or custom conditions defined by the mod
}

Schematic Type [For Programmers/Modders]

Schematic Types are Java-code object that holds custom data about what object can be unlocked. They can be added by a full Java mod using MinecraftForge's DeferredRegistry.

Addon mods can add their own subtype of SchematicType to unlock their own objects using the Tardis from Tardis Mod.

For example, an addon mod for Tardises could add a custom SchematicType object that unlocks a new Tardis Exterior model based on the amount of blocks travelled by a Tardis.

{
     "type:"example_mod:tardis_model_type",
     "display_name":"Model Type 102",
     "translated": false,
     "tardis_blocks_travelled": 600, //New field added by the Addon mod's SchematicType
     "unlocked_model":"my_mod:tardis_model_type/one_hundred_two" //New field added by the Addon mod's SchematicType
}

Creating Unlock Schematics for Tardis Mod Console Units/Exterior/Interiors

For most users, using the default SchematicTypes provided by the Tardis Mod will be enough.

Console Units

To create a schematic for the Console Unit, use the following steps:

  1. Create a Minecraft Datapack for 1.16.5.
  2. Inside the datapack, create folders with a path of "data/[your_namespace]/unlock_schematics/consoles/"
  3. Create a JSON file that has the ID of the Console Unit.
    1. For example, let us create an unlock Schematic for the Tardis Mod's Steam Console Unit.
    2. The namespace and ID is "tardis:steam". We only need the ID, which is "steam"
    3. This file would be named "steam.json"
  4. Next, write a JSON format like the following
{
  "type": "tardis:console", //Use the SchematicType for Tardis Console Units
  "display_name": "console.tardis.steam", //The name of the console that will be displayed ingame
  "translated": true, //True/False value. Set to False by default. This only needs to be true if you want to create a translation file that works for other languages.
  "result": "tardis:steam" //Use the Schematic's ID
}

Save the file and install the datapack into the "datpaacks" folder of your world like you would for other Datapacks.

Apply the Datapack ingame. You can now use the Schematic in other places, such as Spectrometer Recipes or within Ship Computers.

Exteriors

This is a similar process to that for Console Units.

The format of the JSON file is as follows:

{
  "type": "tardis:exterior", //We use the SchematicType of "tardis:exterior" for exteriors 
  "display_name": "exterior.tardis.steampunk",
  "translated": true,
  "result": "tardis:steampunk" //We are unlocking the Steampunk Exterior here
}

Interiors (Console Rooms)

This is a similar process to that for Console Units.

The format of the JSON file is as follows:

{
  "type": "tardis:interior", //We use the SchematicType of tardis:interior for Console Rooms
  "display_name": "interiors.tardis.interior_jade",
  "translated": true,
  "result": "tardis:jade" //We are unlocking the Jade interior here
}