This is an addon to the IBIS datapack to add a peripheral api support, which includes enabling in and out instructions.
By default there are two integrated peripheral types: debug and rawlog (more can be added via other datapacks). Only debug is a peripheral for testing, so this will focus on the rawlog peripheral only.
The rawlog peripheral displays data using /tellraw, but flushes only on \n.
Like usual you'll have to create a CPU, but now you can also add a peripheral to the CPU:
function ibis:create_cpu(result is cpu id)function ibis:switch_context {cpu_id:<cpu_id>}function ibis.peripheral.rawlog:instantiate(result is the instance id of the peripheral)function ibis.peripheral:instance/link {cpu_id:<cpu_id>,instance_id:<instance_id>}this links the created peripheral to the cpudata modify storage ibis:mem_<cpu_id> roms set value [{base:0x0000,bytes:[B;0xeb,0xbb,0xbb,0xec,0x48,0x65,0x0e,0x10,0xec,0x6c,0x6c,0x0e,0x10,0xec,0x6f,0x2c,0x0e,0x10,0xec,0x20,0x77,0x0e,0x10,0xec,0x6f,0x72,0x0e,0x10,0xec,0x6c,0x64,0x0e,0x10,0xec,0x21,0x0a,0x0e,0x10,0xec,0x80,0x00,0x1f,0xd1]}](this is a "Hello, world!" ROM, code below)function ibis:emu/reset
You might have to step the cpu a couple times for the message to display.
Hello world codemov r0, 0xbbbb ; assign r0 to default port used for rawlog
; now write "Hello, world!\n" and send to rawlog (48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0A in hex)
mov r1, 0x4865 ; characters 'He'
out word r1, r0 ; send r1 to r0
mov r1, 0x6c6c ; characters 'll'
out word r1, r0 ; send r1 to r0
mov r1, 0x6f2c ; characters 'o,'
out word r1, r0 ; send r1 to r0
mov r1, 0x2077 ; characters ' w'
out word r1, r0 ; send r1 to r0
mov r1, 0x6f72 ; characters 'or'
out word r1, r0 ; send r1 to r0
mov r1, 0x6c64 ; characters 'ld'
out word r1, r0 ; send r1 to r0
mov r1, 0x210a ; characters '!\n'
out word r1, r0 ; send r1 to r0
mov r1, 0x8000 ; set r1 to the value of the STOP flag
or r13, r1 ; set STOP flag in flag register
If you want to destroy the peripheral, do function ibis.peripheral:instance/destroy {instance_id:<instance id>}, not any of the functions from other namespaces, because this one actually handles proper deleting of the data, which later calls the correct destroy of the instance.
You can also unlink the peripheral from a cpu using function ibis.peripheral:instance/unlink {instance_id:<instance id>} (or you can link it to another cpu, which will unlink from the previous cpu)
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 26.1-snapshot-4
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — see the MC Java Mods guides for the full walkthrough.
- Downloads as ibis_peripheral.zip
- Download size: 25 KB
- Download link checked 24 Aug 2026 — working
These come from our own check of the pack file, not from the source page.