Operational guide

Documentation

Launch Sulkan with confidence. This guide covers runtime requirements, pack selection behavior, quality preset semantics, and the paths you should understand before authoring or shipping a shader pack.

1

Drop the pack into shaders/

Sulkan discovers packs from the game directory's shaders/ folder. A folder or a zip directly under that directory is supported.

2

Open Video Settings -> Shaders

Use the in-game Shaders screen to enable Sulkan, switch between the built-in pack and external packs, and open the pack folder.

3

Choose a global preset

Shadow, AO, water, cloud, and atmosphere quality are controlled independently, while bloom and anti-aliasing stay as separate toggles.

4

Reload and evaluate in-world

The screen keeps the scene visible so pack and preset changes can be judged live instead of through a blurred menu state.

Base template pack

Use the full starter, not a partial subset

base-shader.zip now mirrors Sulkan's current built-in shader tree instead of only a few receiver passes. That means the downloadable starter already contains shadows, terrain, water, AO, clouds, atmosphere, bloom, exposure, FXAA, and the shared include helpers pack authors actually depend on.

Runtime requirements

Sulkan is Vulkan-only and client-side. The current source tree targets a specific snapshot-era renderer API, so treat these requirements as release-facing compatibility notes rather than generic shader-mod assumptions.

Requirement Current source-tree note
Minecraft target Current source tree targets the 26.2 Snapshot 3 renderer API.
Loader Fabric Loader 0.19.2 or newer.
Fabric API Fabric API 0.146.1+26.2.
Java Java 25.
Graphics backend Vulkan is required. Sulkan forces Prefer Vulkan and fails fast if another backend is active.
Install side Client-side only. There is no server install requirement.

Persisted configuration

Sulkan writes its live config to config/sulkan-shaders.json. Missing or invalid values are normalized to safe defaults instead of aborting startup. Pack selection and global enable live in the outer Shaders screen, while subsystem tuning lives in the detailed settings screen.

Behavior note

Sulkan computes active pipelines from the current config. Global shaders, shadows, AO, water, clouds, atmosphere, bloom, FXAA, and terrain wind do not all toggle the same way, so configuration changes can have different reload costs.

Default config
{
  "enabled": true,
  "selectedPackId": "__builtin__",
  "shadowQualityPreset": "normal",
  "aoQualityPreset": "off",
  "waterQualityPreset": "normal",
  "cloudQualityPreset": "off",
  "atmosphericQualityPreset": "normal",
  "bloomEnabled": true,
  "antiAliasingMode": "off"
}

Quality preset semantics

Sulkan shares one preset enum across shadows, AO, water, clouds, and atmosphere. Not every subsystem uses every numeric field, but the preset bundle controls several shadow and AO behaviors at once.

Preset Shadow scale Coverage Max cascades AO samples
off 0.25 0.68 0 0
low 0.50 0.68 2 4
normal 1.00 0.85 3 6
high 1.50 1.00 3 10
ultra 2.00 1.12 3 16

normal is the serialized form of the internal medium preset. Shadow coverage and active terrain cascade count are derived from the configured coverage distance, then capped by the preset's maximum cascade count.

Operational tips

Most support issues come from configuration assumptions, path layout mistakes, or expecting a hot swap when Sulkan actually needs a clean shader reload. These are the rules worth remembering.

  • If a selected external pack can no longer be found, Sulkan normalizes the selection back to the built-in pack instead of failing hard.
  • Changes that alter pipeline topology trigger a clean shader reload. In the current source tree that includes shadows, AO, water, volumetric clouds, and FXAA enablement changes.
  • Bloom is controlled by its own boolean toggle, and anti-aliasing currently exposes OFF and FXAA only.
  • If the config file is missing or unreadable, Sulkan falls back to safe defaults instead of refusing to boot.
  • Use the client log and in-world visual confirmation together. A valid config file does not guarantee runtime shader compatibility.