P2CECraft

Setup

Installation and first launch, on Windows.

Single-player only. P2CECraft injects a renderer into P2CE and a mod into Minecraft. Do not use it on VAC-secured servers or in online co-op, and only use games you own.

Requirements

Host
Portal 2: Community Edition (Steam, free)
Guest
Minecraft Java Edition 26.3
Launcher
Prism Launcher
Java
JDK 25
Build tools
PowerShell and Visual Studio C++ Build Tools
OS
Windows 10 or 11, 64-bit

ReShade and the Windows SDK are fetched by the installer. Do not download them by hand.

Create a Prism instance named p2cecraft: Minecraft 26.3 with Fabric Loader 0.19.5 and Fabric API 0.161.0+26.3. The installer puts the mod into that instance.

Install

Extract the release, for example to D:\P2CECraft. Open PowerShell there.

1. Build Minecraft's side.

cd mc
.\gradlew build

2. Build P2CE's side.

cd ..\p2ce
.\tools\fetch_deps.ps1
.\build.ps1

If build.ps1 reports missing Visual Studio C++ tools, install "Desktop development with C++" from the Visual Studio Build Tools, then run it again.

3. Install into both games. Close Prism and P2CE first.

.\install.ps1 -Minecraft -P2CE "D:\SteamLibrary\steamapps\common\Portal 2 Community Edition"

This adds the ReShade add-on, the shader, the AngelScript bridge and the key binds to P2CE, and the mod jar to the Prism instance. Nothing else is changed.

First launch

cd ..
.\tools\p2cecraft.bat

The script starts P2CE windowed, launches Minecraft, and links the two. Then load a map in P2CE (Campaign, a Workshop map, or the console command map sp_a2_laser_intro). Minecraft loads that map's environment and follows P2CE's camera.

If no map is loaded, Minecraft displays "Please load a map". This is normal.

Manual launch

Start P2CE with -windowed -condebug +exec p2cecraft_binds, then launch the p2cecraft Prism instance. Minecraft hides its own window once P2CE connects.

Controls

InputAction
Movement, look, portal gunP2CE, unchanged
Keys 1 to 9Minecraft hotbar slot (slot 1 is the portal gun)
Mouse wheelCycle hotbar slots
Left / right mouseAttack / use the held Minecraft item
EMinecraft inventory
QDrop the held Minecraft item

Configuration

Settings live in <instance>\p2cecraft\config.json. Both are off by default. Nothing about the Minecraft window changes unless you enable one.

matchP2ceWindowSize
Resize Minecraft's window to P2CE's frame size.
hideMinecraftWindow
Hide Minecraft's window. Its picture still shows inside P2CE.

Troubleshooting

"Please load a map" does not go away

No map is loaded in P2CE. Load one.

The screen is black, or P2CE stays behind other windows

Start P2CE windowed. Use tools\p2cecraft.bat rather than the raw executable.

The games do not link

Check p2ce\console.log and the instance's logs\latest.log. Re-run install.ps1 with the correct -P2CE path.

Blocks float, or mobs fall through, in some places

Collision is built from the map's collision brushes. Surfaces that are not brushes, such as some moving platforms and props, are not mirrored into Minecraft yet.

Stutter

Lower Minecraft's render distance. P2CE renders the picture, so keep its resolution sensible.

install.ps1 reports a locked file

A game is running. Close P2CE and Prism, then retry.

Uninstall

cd p2ce
.\install.ps1 -Remove -Minecraft -P2CE "D:\SteamLibrary\steamapps\common\Portal 2 Community Edition"

Removes exactly the files the installer added. Minecraft worlds and saves are not touched.

Licence

Copyright © 2026 Canyon Lake Labs. All rights reserved. Do not copy or redistribute. See the Terms of Service.

Not affiliated with Valve, Strata Source, Mojang, Microsoft, Fabric or ReShade. No game files are included.