Faucet
Minecraft LCE’s Best Modloader!
Install / Use
/learn @ytsodacan/FaucetREADME
Faucet
A mod loader for Minecraft: Legacy Console Edition
Faucet lets you load custom DLL mods into Minecraft Legacy Console Edition using a custom fork of the game. Mods are written in C++ using the FaucetSDK and placed in the game's mods\ folder.
Requirements
- Faucet (custom LCE fork) — the modified game executable required to run mods
- FaucetSDK — headers, lib, and example mod for building your own mods
- Visual Studio 2022 with the Desktop development with C++ workload
- Windows x64
Installation
- Download and set up the Faucet fork from the link above.
- Place any mod
.dllfiles into themods\folder in your game directory. - Launch the game. Mods are loaded automatically at startup and logged to
mods\modloader.log.
Creating a Mod
Project Setup
- In Visual Studio 2022, create a new Dynamic-Link Library (DLL) project targeting x64.
- Download the FaucetSDK and copy these files into your project folder:
IMod.hSDK.hModExport.hFaucet.lib
- In your project properties:
- C/C++ → Additional Include Directories: add
$(ProjectDir) - Linker → Input → Additional Dependencies: add
Faucet.lib - Linker → General → Additional Library Directories: add
$(ProjectDir)
- C/C++ → Additional Include Directories: add
- Remove
dllmain.cppfrom the project (right-click → Remove in Solution Explorer).
Mod Structure
Every mod must implement the IMod interface and export a CreateMod() function:
#include "IMod.h"
#include "SDK.h"
class MyMod final : public IMod {
public:
const ModInfo* GetInfo() const override {
static const ModInfo info{
"com.yourname.mymod", // Unique mod ID
"My Mod", // Display name
"YourName", // Author
"Description here.", // Description
{ 1, 0, 0 } // Version
};
return &info;
}
bool OnLoad() override { SDK::Log(L"MyMod: loaded"); return true; }
bool OnInit() override { SDK::Log(L"MyMod: init"); return true; }
bool OnUpdate(float dt) override { return true; }
void OnShutdown() override { SDK::Log(L"MyMod: shutdown"); }
};
extern "C" __declspec(dllexport) IMod* CreateMod() {
return new MyMod();
}
Build the project and copy the output .dll into your mods\ folder.
SDK Reference
Include SDK.h in your mod to access all game systems.
Logging
SDK::Log(L"Hello from my mod!");
SDK::LogWarn(L"Something seems off.");
SDK::LogError(L"Something went wrong.");
All output is written to mods\modloader.log.
Getting Game Objects
Minecraft* client = SDK::GetClient();
MinecraftServer* server = SDK::GetServer();
ServerLevel* level = SDK::GetServerLevel(0); // 0=Overworld, -1=Nether, 1=End
PlayerList* players = SDK::GetPlayerList();
MultiplayerLocalPlayer* localPlayer = SDK::GetLocalPlayer();
Player
auto* player = SDK::GetLocalPlayer();
if (player) {
float hp = player->getHealth(); // 0.0–20.0
player->setHealth(20.0f); // Full heal
player->setFlying(true);
wstring name = player->getName();
}
Server Players
PlayerList* list = SDK::GetPlayerList();
if (list) {
for (auto& sp : list->players)
sp->sendMessage(L"Hello!");
auto steve = list->getPlayer(L"Steve");
if (steve) steve->disconnect();
}
Messaging
SDK::BroadcastMessage(L"Server restarting soon!");
SDK::SendMessageToPlayer(L"Steve", L"You've been warned.");
Server Control
SDK::ExecuteCommand(L"time set day");
SDK::SetTimeOfDay(6000); // 0=dawn, 6000=noon, 12000=dusk, 18000=midnight
SDK::SaveAll();
SDK::SetPvpAllowed(false);
SDK::SetFlightAllowed(true);
World / Level
ServerLevel* level = SDK::GetServerLevel(0);
if (level) {
level->explode(nullptr, 0, 64, 0, 4.0f, false, true);
level->sendParticles(L"flame", x, y, z, 10);
level->save(true, nullptr);
}
Notes
- The mod loader calls
OnShutdowneach time a world unloads, not only on game exit. Design your mod accordingly if you need persistent state across world loads. - Logs are written to
mods\modloader.log— check here first if your mod isn't behaving as expected. SDK::GetLocalPlayer()returnsnullptrwhen no world is loaded. Always null-check before use.
Links
- Faucet (game fork): https://github.com/ytsodacan/Faucet/releases/tag/Alpha_Release
- FaucetSDK (mod tools): https://github.com/ytsodacan/FaucetSDK/tree/main
