What is MIME type "application/x-glulx"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

The MIME type application/x-glulx is used for files designed for the Glulx virtual machine. This engine runs interactive fiction games and story-based programs that combine text with multimedia elements.

It lets developers build adventures that need more memory and enhanced features than older systems. Files with this MIME type carry game logic, narrative content, and sometimes images or sound to enrich the experience.

Common file formats include GLB, BLB, GBLORB, ULX, and BLORB.

Learn more about Glulx at the Glulx Home Page.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-glulx    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-glulx">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-glulx');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

How do I open a file with the application/x-glulx MIME type?

You need a specialized Interactive Fiction interpreter to run these files. Popular desktop applications include Gargoyle and Lectrote, which simulate the Glulx virtual machine required to execute the game logic.

How do I configure Apache or Nginx to serve Glulx files?

For Apache, add the line AddType application/x-glulx .ulx .gblorb to your .htaccess file. For Nginx, include application/x-glulx ulx gblorb; within the types block of your configuration file to ensure browsers identify the content correctly.

Can web browsers play application/x-glulx files natively?

No, standard browsers like Chrome or Firefox cannot execute Glulx bytecode directly. To play these games on a website, the file must be embedded in an HTML page using a JavaScript-based interpreter such as Quixe or Parchment.

What is the difference between .ulx and .gblorb files?

A .ulx file contains the raw compiled game code. A .gblorb (or .blb) file is a Blorb container that packages the .ulx game file along with multimedia resources like cover art, sound effects, and images into a single downloadable file.

Why does my browser download the file instead of playing it?

If a server sends the application/x-glulx header and no web-based player is embedded in the page, the browser will default to downloading the file. This happens because the browser does not have a built-in plugin to render the Glulx format.

Is application/x-glulx a standard MIME type?

The x- prefix indicates that it is a non-standard or experimental subtype not officially registered with IANA. However, it is the widely accepted convention within the interactive fiction community for identifying Glulx story files.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.