Community listing page, reviews here may not be monitored by the author.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description

The Vyn scripting language, embedded in Minecraft.
Write .vyn scripts inside resource packs and have them run in-game, reacting to what happens around the player — no Java required.
✅ Minecraft 1.21.5 · 1.21.11 · 26.1 · 26.2 — Fabric · NeoForge · Forge (Forge on 1.21.x only)
📜 What is Vyn?
Vyn is a statement-driven scripting language built for readability, with blueprints (OOP) and concurrency as first-class features. It reads like English:
~ variables
make name "Steve"
~ conditionals
check name == "Steve" do
say "Hi, Steve!"
otherwise
say "Who are you?"
end
~ loops
cycle i from 1 to 5 do
say "Iteration: " + i
end
~ functions
task double takes x do
reply x * 2
end
~ blueprints (OOP)
blueprint Pet do
build takes name do
make me.name name
end
end
VynAPI embeds this language inside Minecraft and connects it to the game — every resource pack becomes a potential script pack:
my_pack/
└── assets/
└── example/
└── scripts/
└── hello.vyn ← plain-text script, loaded by VynAPI
✨ What can you do with it?
- 🎮 React to events — every tick (
onTick), arm swings (onSwingHand), any sound that plays (onPlaySound) - 📊 Read game state — player health, hunger, position, velocity, the block you're looking at, nearby blocks, biome, time of day, colors and more
- 🔊 Do things — draw text on the HUD (
debugText), send chat messages, play sounds at positions - ⏱ Delayed logic — non-blocking
waitstatement, in ticks - 📦 Ship libraries —
importScript/excludeScriptbetween scripts and packs - ♻️ Hot reload — press
F3 + Twhile developing; scripts reload instantly - 🧩 Extensible — mod developers can register custom events & functions via
VynAddon
📥 Installation
- Download the jar matching your Minecraft version and loader (Fabric / Forge / NeoForge)
- Put it in your client's
modsfolder - Launch the game and enable a resource pack that contains
.vynscripts
Quick start
task onTick do
debugText("Health: " + player.getHealth())
debugText("Looking at: " + player.getTargetBlock().getName())
end
Load the pack, press F3 + T — two lines appear in the top-left corner of your HUD, updating every tick.
📡 Events
| Event | Fires when | Arguments |
|---|---|---|
onTick |
Every client tick (20×/second) | — |
onSwingHand |
The local player swings their arm | — |
onPlaySound |
A sound plays in the world (ambient excluded) | sound |
task onPlaySound takes sound do
player.sendMessage(sound.getName() + " @ " + sound.getPosition())
end
🧰 Script API (the essentials)
Constants: player · world · key · modLoader
Player: getName() · getHealth() · getFoodLevel() · getPosition() · getX/Y/Z() · getVelocityX/Y/Z() · getYaw() · getPitch() · getTargetBlock() · getSteppingBlock() · getNearbyBlocks(radius) · sendMessage(text) · playSound(id, volume, pitch) · playSoundWorld(pos, id, volume, pitch) ...
World: getBlock(x, y, z) · getDimension() · getDayTime() · getGameTime() · getBiomeAt(pos) · getGrassColor(pos) · getFoliageColor(pos) · getWaterColor(pos) · calculateDistanceBetweenPositions(a, b)
Block: getName() · getPosition() · isAir() · hasBlockTag(id) · getLightBlock() · getLightEmission() · canBeReplaced() · instrument() ...
Types: new Position(x, y, z) · new Sound(id, volume, pitch, position)
Functions: debugText(text) · importScript(packId, name) · excludeScript(packId, name)
Statement: wait <ticks> do ... end — runs a block once after N ticks, without blocking the game.
📖 Full API reference: VynAPI README
🧩 For mod developers
Subclass VynAddon to register custom events and bind native functions, types, and constants into every script environment:
public final class MyAddon extends VynAddon {
public MyAddon() {
super("onMyEvent"); // custom event scripts can listen to
}
@Override
public Consumer<Environment> onEnable() {
return env -> {
NativeBinder.bind(env, MyType.class); // new MyType(...) in scripts
NativeBinder.defineConstant(env, "myVersion", "1.0.0");
env.defineFunction("myFunction", new NativeFunction((e, args) -> null));
};
}
}
Fire events from anywhere in your mod:
ScriptHandler.fireEvent("onMyEvent", someValue);
Any loaded script defining task onMyEvent takes value do ... end will receive it.
🔨 Building from source
# 1) Publish the Vyn engine to your local Maven repo
git clone https://github.com/Abdelaziz1586/Vyn.git
cd Vyn && mvn clean install
# 2) Build VynAPI for the version you want
git clone https://github.com/omardotcontent/VynAPI.git
cd VynAPI && git checkout 1.21.11 # or: 1.21.5, 26.1, 26.2
./gradlew :fabric:build # or :neoforge:build / :forge:build (1.21.x only)

❗ Important
- Client-side only — install it in your client's
modsfolder; scripts never run on the server. Works in singleplayer and multiplayer. - Pick the right build — each Minecraft version has its own jar:
| Minecraft | Java | Fabric | Forge | NeoForge |
|---|---|---|---|---|
| 1.21.5 | 21 | ✅ + Fabric API | ✅ | ✅ |
| 1.21.11 | 21 | ✅ + Fabric API | ✅ | ✅ |
| 26.1 | 25 | ✅ + Fabric API | ❌ | ✅ |
| 26.2 | 25 | ✅ + Fabric API | ❌ | ✅ |
- Never block the client thread — use
waitinstead ofholdfor delays, and keeponTickwork light (it runs 20×/second). - Scripts run on the client only — everything they do is local to the player. That's by design: resource packs are client-side.
❓ Support & links
- GitHub: omardotcontent/VynAPI
- Issues & suggestions: GitHub Issues
- The language itself: Abdelaziz1586/Vyn
Credits: OmarDotContent & Abdelaziz_Mohamed — Vyn port by Abdelaziz_Mohamed, mod port by OmarDotContent.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers