Tupenter

Quick rating

Tupenter

No reviews yet

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.

Mod Loaders
Fabric
Minecraft
26.2

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Unsupported

About

Project Details

Type
Mod
License
MIT License
Latest Version
26.2.X-v1.0.0
Authors

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.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

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 # inside blockset(...) 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

Screenshots

Gallery

  • Become a walking repeating command block
    Become a walking repeating command block The resend key allows you to quickly execute your last sent command 20x/sec!
  • Create custom commands and resend them easily with a keybind
    Create custom commands and resend them easily with a keybind /blink is one of my favorite custom commands I've made, it uses a raycast to teleport to a looked at surface. It also supports an optional maxDistance parameter
  • Simple command chaining
    Simple command chaining Set the time to day and clear weather. Both commands still have Mojang's autocomplete and syntax highlighting
  • Custom commands page
    Custom commands page Uses mod menu to create a dedicated viewer and editor for custom commands
  • Complex custom commands with parameters
    Complex custom commands with parameters This custom command replaces a spherical area of non-air blocks. Only vanilla commands get sent to the server, so if your commands/sec setting isn't too high this will work on any server with op!
  • Script Editor Screen
    Script Editor Screen Uses mod menu to create a dedicated viewer and editor for scripts, with a per-script toggle for individual worlds and globally
  • Running a complex script from a keybind
    Running a complex script from a keybind Tupenter supports complex scripts that resolve into pure-vanilla setblock commands. No command blocks or datapacks used!
  • Simple chat script to breathe fire
    Simple chat script to breathe fire

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

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
CurseForge
Modrinth
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works