Skip to main content

Resource Pack Integration

The GUI Extension automatically detects and integrates with your resource pack plugin. It supports 4 providers with automatic fallback.

Provider Architecture

The registry selects the highest-priority available provider. You can see the active provider in the web editor status indicator.

Provider Details

CraftEngine (Priority 100)

Plugin required: CraftEngine by MomiRealms The CraftEngine adapter reads glyph definitions directly from CraftEngine’s internal registry. It provides:
  • Full access to all CraftEngine custom items and textures
  • Automatic unicode mapping from registered glyphs
  • Texture serving via CraftEngine’s resource pack
Setup: No additional configuration required. The adapter auto-detects CraftEngine at startup.

ItemsAdder (Priority 60)

Plugin required: ItemsAdder The ItemsAdder adapter reads glyph definitions from ItemsAdder’s configuration files:
  • ItemsAdder custom textures and icons
  • Unicode characters from items_packs configurations
  • PNG textures from the ItemsAdder resource pack
Setup: No additional configuration required. Auto-detected if ItemsAdder is installed.

Nexo (Priority 80)

Plugin required: Nexo The Nexo adapter integrates with Nexo’s item/texture system for custom glyphs. Setup: No additional configuration required. Auto-detected if Nexo is installed.

Standalone (Priority 0 — Fallback)

No plugin required. The standalone provider works without any external RP plugin. Features:
  • 256 pre-allocated unicode glyph slots
  • Magic Digit font generation (Fibonacci-based spacing)
  • Negative space font support
  • Custom asset upload via /api/assets/upload
  • Resource pack downloadable from http://localhost:8082/api/pack/download

Setup for Each Provider

Using CraftEngine

# config.yml — No changes needed
# The web editor automatically detects CraftEngine items
  1. Install CraftEngine on your server
  2. Define your custom items/textures in CraftEngine
  3. Run /ce reload to refresh CraftEngine’s registry
  4. The web editor auto-detects all glyphs on next refresh

Using ItemsAdder

# config.yml — No changes needed
  1. Install ItemsAdder on your server
  2. Define custom items in ItemsAdder’s configuration
  3. Run /iazip to generate the resource pack
  4. The web editor auto-detects all glyphs

Using Nexo

# config.yml — No changes needed
  1. Install Nexo on your server
  2. Define your custom items/textures in Nexo
  3. The web editor auto-detects available glyphs

Using Standalone Mode

# plugins/Typewriter/gui_standalone_config.yml
gui:
  assets:
    directory: "plugins/Typewriter/gui/assets"
  external_rp:
    directory: "plugins/Typewriter/gui/external-rp"
    auto_merge: true
Steps for custom assets:
  1. Upload images: Use the asset upload endpoint to add PNG textures:
    POST http://localhost:8082/api/assets/upload?name=my_icon
    Content-Type: image/png
    [PNG binary data]
    
  2. Add font definitions: Place .json font files in plugins/Typewriter/gui/assets/fonts/:
    {
      "providers": [
        {
          "type": "bitmap",
          "file": "typewriter:my_texture.png",
          "ascent": 8,
          "height": 16,
          "chars": [""]
        }
      ]
    }
    
  3. Merge external packs: Drop resource pack .zip files into plugins/Typewriter/gui/external-rp/. The merger auto-processes them on startup.
  4. Download the pack: Get the final resource pack at:
    http://localhost:8082/api/pack/download
    

Merging External Resource Packs

The merger supports .zip resource packs from any plugin. Drop them in plugins/Typewriter/gui/external-rp/ and restart the server. Conflict resolution: When two packs define the same unicode character, the highest-priority pack wins. Standalone provider always has lowest priority.

Troubleshooting

SymptomCauseSolution
”No assets” in editorRP plugin not loadedCheck plugin is installed and enabled
Textures not loadingWrong URL or portVerify gui.panel.port in config
Wrong provider activePriority mismatchCheck provider availability with /api/status
Standalone pack missingNo RP plugin + no generationRestart server, check logs for “standalone_pack.zip”
External pack not mergingWrong directoryPlace .zip in gui/external-rp/, not subfolder