Skip to content

Using Emissives.json

Carter edited this page Sep 28, 2025 · 4 revisions

Portal Cubed has a custom way of making block and item models have emissive textures. emissives.json predates the vanilla light_emission field in block/item models, but is still used by most of Portal Cubed's models. A model can use both methods at once if desired, but there's not much point in doing so.

emissives.json is located at assets/namespace/emissives.json, much like vanilla's sounds.json

Differences to light_emission

The main differences between emissives.json and vanilla's light_emission are:

  • emissives.json makes entire textures emissive, rather than specific model elements.
  • Textures made emissive with emissives.json are automatically unshaded, and always use full brightness.
  • emissives.json can be used to make entire folders be considered emissive. This is used in cases where a model has dynamic textures, but not all textures used on a specific model element should be emissive.

Format and Examples

emissives.json is a list of model paths with an associated texture path, list of texture paths, or folder of textures to be made emissive. The model and texture paths start at assets/namespace/models and assets/namespace/textures respectively.

Single-texture examples:

  ...
  "block/pedestal_button": "block/pedestal_button_emissive",
  "block/pedestal_button_active": "block/pedestal_button_emissive",
  "block/pedestal_button_base_center": "block/pedestal_button_emissive",
  "block/pedestal_button_base_center_active": "block/pedestal_button_emissive",
  "block/pedestal_button_base_left": "block/pedestal_button_emissive",
  "block/pedestal_button_base_left_active": "block/pedestal_button_emissive",
  "block/pedestal_button_base_right": "block/pedestal_button_emissive",
  "block/pedestal_button_base_right_active": "block/pedestal_button_emissive",
  ...

Texture list examples:

  ...
  "block/elevator_wall_top": [
    "block/elevator_wall_upper_emissive",
    "block/elevator_wall_middle_top_emissive"
  ],
  "block/elevator_wall_middle": [
    "block/elevator_wall_middle_emissive",
    "block/elevator_wall_middle_top_emissive"
  ],
  "block/elevator_wall_bottom": [
    "block/elevator_wall_lower_emissive",
    "block/elevator_wall_middle_top_emissive"
  ],
  ...

Folder Examples:

  ...
  "block/large_signage": [
    {
      "type": "folder",
      "folder": "signage"
    }
  ],
  "block/aged_large_signage": [
    {
      "type": "folder",
      "folder": "signage"
    }
  ],
  ...

Portal Cubed's full emissives.json can be found here: https://github.com/Fusion-Flux/Portal-Cubed-Rewrite/blob/main/src/main/resources/assets/portalcubed/emissives.json

Clone this wiki locally