Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for iYeXin

A runtime platform that lets you build Paper/Folia plugins in TypeScript / JavaScript.

Report Yeow?

Yeow

Write Paper/Folia plugins in TypeScript.

Yeow is a plugin runtime and framework that turns a Paper server into a multi-language plugin host. Plugins you write in TypeScript / JavaScript run inside their own isolated QuickJS threads, load live as .yeow.zip packages, and get a fully-typed API for everything a Paper plugin can touch.


Why Yeow

Java plugin Yeow plugin
Language Java TypeScript / JavaScript
Restart to add a plugin usually No — load via /yeow load
Hot reload while developing partial WebSocket hot reload
Type safety javac tsc type-checked, full typings
Crash isolation plugin may freeze ticks isolated thread per plugin
Platform Paper Paper + Folia

Yeow is designed for developer productivity: TypeScript-first with complete type inference, async APIs that don't block the server thread, source-map error location (including full async call chains), and a safe-by-default permission model.


Quick Start

npm create yeow@latest -- -y --ts
cd my-plugin && npm install
npm run dev        # Paper test server + hot reload
npm run build      # dist/<name>.yeow.zip + standard JAR

Install the runtime on the server: put yeow-runtime-paper-0.5.0.jar (or yeow-runtime-folia-0.5.0.jar on Folia) into plugins/. Drop your plugin's .yeow.zip into plugins/Yeow/ (auto-scanned at startup) or load it live with /yeow load.


A plugin in TypeScript

import { Player, eventOn, registerCommand } from 'yeow-api';

eventOn('playerJoin', (e) => {
    e.player.sendMessage({ text: '<green>欢迎回来,' + e.player.name + '!</green>' });
});

registerCommand({
    name: 'heal',
    description: '恢复生命值',
    execute: (sender) => {
        if (sender instanceof Player) {
            sender.health = sender.maxHealth;
            sender.sendActionBar({ text: '<green>已恢复!</green>' });
        }
    },
});

Everything is typed — event payloads, command senders, entity/player members — so your editor catches mistakes before the server does.


What's included

Game API — players, worlds, entities, items, inventories (including custom GUI), bossbars, scoreboards, advancements, recipes, PDC, sounds, particles, potions, events, commands.

Runtime services — file system (fs), HTTP client + yeow-server HTTP server, gzip/UTF-8 utilities, logging, environment info, worker threads ("virtual plugins" with their own isolated context), and a cross-plugin service registry.

Developer toolsnpm create yeow scaffolding, dev server with hot reload and source-map error display (async call chains included), sync/async API pairs, PDC JSON serialization.

Safety — sensitive capabilities (server files, HTTP, resources, processes) are default-deny: each must be declared in yeow.config.json. Native services (spawned subprocesses) require SHA-256 approval before first load.


Folia support

Yeow ships a yeow-runtime-folia build with region-resident scheduling, hot-spot migration, budget control and global-thread routing — the same plugin runs unchanged on Paper or Folia.


Documentation


License & source

MIT licensed. Source: github.com/iYeXin/Yeow

Information

Category
Developer Tools
Published
August 20, 2026
License
0Downloads
0Stars
Supports Folia

Members

1