promotional bannermobile promotional banner

Radio Link

A radio mod that works with Simple Voice Chat.
Back to Files

radiolink-2.0.4.jar

File nameradiolink-2.0.4.jar
Uploader
Giak_88Giak_88
Uploaded
Aug 14, 2026
Downloads
6
Size
140.4 KB
Mod Loaders
Fabric
File ID
8649396
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:radio-link-1637885:8649396"

Learn more about Curse Maven

What's new

Changelog

2.0.4 — 2026-08-03

  • Build fix: removed the onChunkUnloaded() override in RepeaterStationBlockEntity. That hook is a Forge addition to BlockEntity and does not exist in vanilla, so it does not exist on Fabric either. Nothing is lost: vanilla already calls setRemoved() on every block entity of a chunk when the chunk unloads, and that is where the repeater unregisters itself.
  • tools/check-sources.py now also greps for Forge-only APIs (onChunkUnloaded, getCapability, DistExecutor, ForgeConfigSpec, ...). The offline javac check cannot see this class of error on its own: with the Minecraft classes absent, every @Override fails, so "does not override" has to be filtered out wholesale.

2.0.3 — 2026-08-03

  • Build fix (the real one): every @Nullable came from javax.annotation, which Forge provided transitively and Fabric does not — 26 compile errors across 10 files. Now org.jetbrains.annotations.Nullable, the Fabric standard, with an explicit compileOnly dependency so the build never relies on it arriving by chance.
  • Added tools/check-sources.py, the offline sanity check used while porting. It compiles the sources without the Minecraft/Fabric jars and reports only genuine problems — in particular any import from a package that is not supposed to be missing, which is exactly what slipped through in 2.0.2. Not a substitute for a real build, just a fast first filter.

2.0.2 — 2026-08-03

  • Build fix: dropped EditBox.setHint() on the call-target field. It was the one API in the port I could not confirm against the 1.20.1 javadocs, so the placeholder text is now drawn by hand instead. Same look, no risk.

2.0.1 — 2026-08-03

  • Build fix: the Gradle wrapper was still the one inherited from the Forge project (8.1.1), which Fabric Loom 1.6 refuses to run on. Now Gradle 8.8. No gameplay change.

2.0.0 — 2026-08-03 — Fabric port

The mod now runs on Fabric (Minecraft 1.20.1). This is a port of the Forge 1.4.1 codebase, not a rewrite: the radio physics, the DSP, the Simple Voice Chat integration and the whole GUI are the same code. Only the loader-specific layer changed.

Ported

  • Entrypoints: ModInitializer / ClientModInitializer, plus the voicechat entrypoint in fabric.mod.json (Fabric registers the Simple Voice Chat plugin that way instead of by annotation).
  • Registration through the vanilla registries + FabricItemGroup and FabricBlockEntityTypeBuilder.
  • Networking: one channel per packet via ServerPlayNetworking / ClientPlayNetworking, with the same payloads as before. The client half lives in its own class, because on Fabric a dedicated server has no client classes at all.
  • Events: ServerTickEvents, ServerLifecycleEvents, ServerPlayConnectionEvents.JOIN, and ServerMessageEvents.ALLOW_CHAT_MESSAGE for chat blocking (commands still never pass through it).
  • HUD: HudRenderCallback instead of Forge overlays.
  • Config moved to config/radiolink.json (plain JSON, created on first start, missing fields keep their defaults). Fabric has no per-world server config, so it is a single file for the whole installation.
  • Obstacle materials use RadioLink's own block tags (radiolink:rf_transparent, radiolink:rf_dense) instead of the Forge ones.
  • Built with loom.officialMojangMappings(), which is why the game code reads exactly like the Forge version.

New in 2.0.0

  • Private calls: type a player name in the field next to CALL and only that player is rung — everyone else on the channel hears nothing, like the individual call of a real DMR radio. Leave it empty for the usual group call.
  • Missed calls now behave properly: the notice is delivered only when you are genuinely back in coverage of another player or a repeater. The old "deliver anyway after a while" fallback is off by default (missedCallGraceTicks: 0) and can be re-enabled by setting a tick count.
  • The pager tone travels through the normal radio engine, so it leaks out of the recipients' speakers for bystanders to hear, exactly like voice.
  • The "Radio Speaker" volume slider in the Simple Voice Chat menu (added in 1.4.0, made reliable in 1.4.1) controls how loud other players' handheld radios are for you.
  • The "i" screen in the radio GUI now also explains group vs private calls.

Not included

The Forge line stays at 1.4.1. This is a separate project: the two do not share a build, so a change made here has to be ported by hand if you want it on Forge as well.

This mod has no related projects