
Modrinth · Minecraft mod
Tupenter
Resend chat and commands with a keybind and then even script them: chain with &&, inline math, variables, loops, conditionals, and your own commands with real autocomplete. All client-side, sending plain vanilla commands.
Quick answer
Which Tupenter release should I use?
Tupenter 26.3.X-v1.1.0 targets 26.3 with Fabric. It must be installed on the client. Do not install it on the dedicated server. No extra mods listed for this file.
Where it goes
Is Tupenter required on the client, server, or both?
It must be installed on the client. Do not install it on the dedicated server.
This file is marked client-only.
What else does Tupenter 26.3.X-v1.1.0 need?
26.3.X-v1.1.0. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
2 extra mods were pulled in by other dependencies. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add Tupenter without breaking your instance.
Built for Tupenter 26.3.X-v1.1.0. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 26.3.X-v1.1.0. It targets 26.3 with Fabric; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
It must be installed on the client. Do not install it on the dedicated server.
- 04
Pick the file you checked
Use the “Get this file” button beside 26.3.X-v1.1.0. It opens that exact file at the source.
About this project
What does Tupenter add?
Tupenter turns the Minecraft chat bar into something closer to a console. It
started as a resender where you can press a key and send that message again and grew into a
scripting layer on top: chaining, expressions, variables, loops, conditionals,
custom commands, and scripts that run every tick.
It runs entirely on your client. Everything it produces is an ordinary
vanilla command, so no server-side mod is needed and nothing you couldn't have
typed yourself gets sent.
Resending
Press a key (default R) to send your last message again.
- Press & hold for rapid fire, or toggle for hands-free
- Replay the last N messages as a batch, in either order
- Per-message and per-batch delays, preset message lists, and command-feedback
suppression - Everything configurable in Mod Menu, including a keybind to open the config
Scripting
Three pieces of syntax carry the whole language:
| Syntax | Meaning |
|---|---|
$...$ |
an expression — evaluated, and its value substituted |
#word |
a directive — an instruction to Tupenter itself |
(...) |
grouping, after a directive |
Chain commands
/time set day && /weather clear && /say ready
Compute inline
/give @s stick $32 + 5$
/give @s diamond $3s$ (s = stacks of 64)
/summon $pick("zombie" | "skeleton")$
/tp @s ~ ~$client.pos.y > 60 ? 10 : 0$ ~
Math is exact - 1/3 stays a third, with no floating-point drift.
Read the world
Over ninety live variables - position, health, biome, light level, held item,
what your crosshair is on, weather, the entity you're looking at, its NBT.
/echo standing on $block(client.blockpos.x, client.blockpos.y - 1, client.blockpos.z)$
#if (client.target.hit == "block") (/tp @s $client.target.blockpos$)
Variables, loops, conditionals
#set spawn = "100 64 -200"
#local roll = rand(1, 10) && /give @s stick $roll$ && /say I got $roll$!
#repeat 5 (/say tick $i$)
#foreach $b$ in blockset(#minecraft:wool) (/give @s $b$)
#if (client.health < 6) (/effect give @s regeneration 5 1)
Registry tags resolve through the live connection, and typing # insideblockset(...) tab-completes the tags available on that server.
Wait, without freezing anything
/attribute @s minecraft:jump_strength base set 30 && #wait 2t && /tp @s $client.target.blockpos$
Scripts evaluate lazily - a value read after a #wait sees the world as it is
then, not as it was when you pressed Enter.
Make your own commands
/customcommand add blink <maxdistance:int=100> "teleport to where you're looking" = #silent #local hit = raycast(maxdistance) && #if (hit == "miss") (/tp @s ^ ^ ^$maxdistance$) #else (/tp @s $hit$)
/blink is now a real command with real autocomplete, typed parameters, and
optional arguments. There are custom functions too, for values you want to
reuse in expressions.
Scripts that run every tick
Armed per world, so a script you wrote for creative never fires on your survival
server. Since a script is a loop, events are one-tick flags you test:
#if (client.just_died) (/echo died at $client.blockpos$)
#if (client.keypress.g) (/togglenightvision)
Batteries included
A fresh install ships with working examples, so nothing starts empty.
Commands, ready to use:
| Command | What it does |
|---|---|
/blink [maxdistance] |
teleport to where you're looking, stopping at walls |
/ironkit |
a full set of iron gear |
/portalcalc [pos] [dim] |
convert coordinates between Nether and Overworld |
/tickfreeze |
toggle /tick freeze |
/launch <entity> [speed] |
hurl an entity where you're looking |
Scripts, all disabled until you turn them on:
| Script | What it does |
|---|---|
rainbowTunnel |
press ] and fly — a spiralling wool tunnel follows your motion, lit by glowstone |
itemDespawnTimer |
marks where you died and counts down your items' five minutes, pausing whenever that chunk isn't being simulated |
creeperAlert |
warns once, with the distance, when a creeper gets within 8 blocks |
elytraWarning |
a durability heads-up before your elytra gives out |
restockReminder |
villagers restock at dawn |
They double as documentation — read them to see vectors, events and timers in
practice.
Quality of life
- Chat-bar highlighting — each
&&segment is coloured by what it is;
commands get per-argument colouring from their own parse - Chain-aware autocomplete —
/time set day && /weather cl⇥completes the
second command - Selectable chat — click and drag across messages, Ctrl+C to copy
/unroll— dry-run any line and see exactly what it would send, without
sending it- Every feature has an on/off switch in Mod Menu
It's still vanilla underneath
Tupenter never invents capabilities. It expands what you type and sends real
commands, so your permissions still apply — the /setblock examples need cheats
or op, exactly as if you had typed them. On a server without cheats the
scripting still works; you're just limited to commands you could already run.
Tick scripts fire twenty times a second, so guard anything that sends. The docs
say so repeatedly, and /tupenter abort is always the panic switch.
Documentation
/tupenter help— every command, directive, function and variable documents
itself in game, with runnable examples/tupenter reference— copies the entire reference to your clipboard- SCRIPTING.md —
the same reference on GitHub: the model, every directive, every function, every
parameter type, every variable, and the gotchas
The documentation is generated from the same registries the code uses, so it
cannot drift out of date.
Requirements
- Minecraft 1.21.10
- Fabric Loader 0.18.2+
- Fabric API
- Java 21+
Mod Menu and Cloth Config are optional but recommended — the config
screen and the script editors live there.
Links
- Source on GitHub
- Report an issue
- MIT licensed
Project description from Modrinth.
Pick your setup
Tupenter by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
26.3
1 loader build26.2
1 loader build26.1.2
1 loader build26.1.1
1 loader build26.1
1 loader build1.21.11
1 loader build1.21.10
1 loader build1.21.9
1 loader build1.21.8
1 loader build1.21.7
1 loader build1.21.6
1 loader build1.21.5
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Tupenter versions and loaders
26.3.X-v1.1.0
tupenter-fabric-26.3.X-v1.1.0.jar
17 Sept 2026
26.2.X-v1.1.0
tupenter-fabric-26.2.X-v1.1.0.jar
27 Aug 2026
26.1.X-v1.1.0
tupenter-fabric-26.1.X-v1.1.0.jar
27 Aug 2026
1.21.11-v1.1.0
tupenter-fabric-1.21.11-v1.1.0.jar
27 Aug 2026
1.21.9-1.21.10-v1.1.0
tupenter-fabric-1.21.9-1.21.10-v1.1.0.jar
27 Aug 2026
1.21.6-1.21.8-v1.1.0
tupenter-fabric-1.21.6-1.21.8-v1.1.0.jar
27 Aug 2026
1.21.5-v1.1.0
tupenter-fabric-1.21.5-v1.1.0.jar
27 Aug 2026
26.2.X-v1.0.0
tupenter-fabric-26.2.X-v1.0.0.jar
3 Aug 2026
26.1.X-v1.0.0
tupenter-fabric-26.1.X-v1.0.0.jar
3 Aug 2026
1.21.11-v1.0.0
tupenter-fabric-1.21.11-v1.0.0.jar
3 Aug 2026
1.21.9-1.21.10-v1.0.0
tupenter-fabric-1.21.9-1.21.10-v1.0.0.jar
3 Aug 2026
1.21.6-1.21.8-v1.0.0
tupenter-fabric-1.21.6-1.21.8-v1.0.0.jar
3 Aug 2026
Looking for an older file? The official Modrinth project page is in Resources.