Skip to content

Multi-Version

This page serves as a quick-reference/guide on differences that came up as the Beta-era protocol was developed, including some info on Beta 1.8 and beyond.

WARNING

This is not a proper page and just for taking notes/as a reference (hence why it's hidden from the sidebar), so it will be less structured and less formal than other pages. It may be removed at any time.

Beta 1.8

Beta 1.8.x is a version often disliked by legacy Minecraft players, due to its addition of the hunger bar and less nostalgic world generation. However, it has interesting features for server admins like creative mode and flying, and the protocol still resembles Beta 1.7.3 closely.

To implement basic support, make the following changes to the login packet:

Clientbound

swift
func write(to buffer: inout ByteBuffer) throws {
    buffer.writeInteger(entityId)
    buffer.writeString16("")
    buffer.writeInteger(worldSeed)

    if beta18 {
        buffer.writeInteger(Int32(1)) // 0 for survival, 1 for creative
        buffer.writeInteger(dimension.rawValue)
        buffer.writeInteger(Int8(2)) // normal difficulty
        buffer.writeInteger(UInt8(128)) // world height
        buffer.writeInteger(UInt8(8)) // max players
    } else {
        buffer.writeInteger(dimension.rawValue)
    }
}

Serverbound

swift
init(from buffer: inout ByteBuffer) throws {
    protocolVersion = try buffer.readInteger()
    username = try buffer.readString16()
    let _: Int64 = try buffer.readInteger()

    if beta18 {
        let _: Int32 = try buffer.readInteger()
        let _: Int8 = try buffer.readInteger()
        let _: Int8 = try buffer.readInteger()
        let _: UInt8 = try buffer.readInteger()
        let _: UInt8 = try buffer.readInteger()
    } else {
        let _: Int8 = try buffer.readInteger()
    }
}

MISSING

TODO: beta 1.2 and 1.1 sharing the same protocol version is suspicious, could be minecraft.wiki mistake

Versions

Version NameProtocol VersionMinecraft Wiki Page
Alpha v1.2.66https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769659
Beta 1.1_017?TODO
Beta 1.1_028?https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769678
Beta 1.2_028?https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769711
Beta 1.3_019https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769723
Beta 1.4_0110TODO
Beta 1.5_0211TODO
Beta 1.6.613TODO
Beta 1.7.314https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769763
Beta 1.8.117https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol?oldid=2769858
1.0.022TODO