Skip to main content
KiteMarket provides the complete vanilla GUI and ItemsAdder v4 compatibility. Server owners and developers may create configuration themes or Java renderers with their own resources, for private use, free distribution or independent sale, without an additional KiteMC theme license. Shared server flows still handle transactions, actual items, input validation and confirmation.
Prepare the theme resources firstIA theme resources are not bundled. Install your own theme, a third-party theme or the public MIT development example. Without a theme, the complete vanilla interface remains available.

Install your own theme

  1. Obtain legitimate ItemsAdder v4 and matching ProtocolLib runtime plugins supported by the target server. See the existing representative environment. An API JAR alone cannot run the feature.
  2. Install the theme’s own ItemsAdder namespace following its instructions, and place its KiteMarket declaration in plugins/KiteMarket/themes/*.yml. A Java theme also needs its provider plugin. Working configuration and Java examples are described in interface development.
  3. Following the installed IA guide, manually run /iareload, wait for completion, then /iazip to rebuild and send the pack. KiteMarket does not run third-party rebuild commands for administrators.
  4. Register the SHA-1 (40 hexadecimal digits) and UUID of the actual sent pack containing the theme. Temporarily enable gui.itemsadder.diagnostics: true with /km reload to inspect the observed UUID, SHA-1 and URL in [KITEMARKET_PACK]. Register them, run /km reload again, then disable diagnostics.
  5. After successfully loading that pack, players use /km ui itemsadder example-ia, or /km ui auto once the theme is configured as a default. /km ui shows the actual interface and fallback reason.
example-ia must identify an installed theme. Replace the pack-identity placeholders below with actual observed values:
Use gui.default-themes: {} when no IA theme is installed. Third-party declarations may register a separate pack through requires; see the developer guide. Invalid candidates preserve the current valid configuration. Themes need no KiteMC product ID or download endpoint.

Use and fallback

Preferences persist per market network and player across nodes. Missing themes or fallback do not overwrite them. Switching preserves publishing drafts and cannot submit a trade twice. Both interfaces share actual items, listing versions, quotes, final inventory checks and operation IDs. Registered resources, the adapter and successful loading of the specific pack by this player must be ready. Sending or accepting is not successful loading. Rejection, failure, discard/removal of that pack or mismatched identity causes fallback; unrelated packs do not erase IA readiness. Disconnects, node changes, removal of all packs and IA reload require confirmation again. Changed content requires a new actual sent UUID and matching digest; a random UUID entered only in KiteMarket or a different digest assigned to a registered UUID is insufficient.

Develop your own interface

The base inventory layout, shared pages and amount input remain. Developers may use their own font images, button-item icons and page configuration. SDK actions and input retain server validation; a theme cannot bypass confirmation or debit funds directly. See interface development for working examples, the 35 page keys and lifecycle. Preserve theme declarations, resources and player preferences during migration, backing them up before updates; see operations. The public examples’ MIT license covers only the source and resources identified in those examples. Other themes retain their own licenses.