Return to site

Minecraft Classic Codes

broken image


I wrote the code myself with Code.org. Rotate your device. Turn off orientation lock in device settings. The new Minecraft Hour of Code tutorial is now available in Minecraft: Education Edition for Windows, Mac, Chromebook, and iPad. Learn the basics of coding and explore diversity and inclusion with your students! Access free resources including a lesson plan, videos, computer science curriculum, equity lessons, and teacher trainings.

Minecraft : The Hidden Versions

(I DON'T HAVE THE NEW LAUNCHER AS OF 6/28/2017, I'M PLANNING ON REPURCHASING THE GAME SOON. IF YOU HAVE ANY PROBLEMS WITH LAUNCHING I'LL UPDATE THIS INFOBOX AFTER I'VE PURCHASED IT AND TEST ALL RELEASED VERSIONS OUT)
VERSION 4 IS COMING SOON
Are you an older player of minecraft from way back in 2009-2011? Are you a new player wanting to experience the older versions of yourself? Well you've come to the right place alright. Here I and a few others, help find older versions of Minecraft and make them playable for the newer launcher again. This Also features old server drivers currently, since I decided to morph the two pages together.
***Note this will not be on minecraft forums***
How to get them to work:
Go to your .minecraft folder which can be found by starting your minecraft launcher, selecting any profile and then clicking on 'edit profile'.From there you will need to check if your 'game
directory' is set to C:Users(Your Pc name goes here)AppDataRoaming.minecraft(if not tick the tickbox next to 'game directory' and change it to this). After that, you will need to click 'Open
Game Dir' and click on versions.Then download the files and copy and paste them into this folder(if it comes up with a message such as 'There is already a file with the same name in this location.'
Click Move and Replace. After that, restart your minecraft launcher and they should have appeared in your use version list if youdon't know how to change to a version see here: go on edit profile
and click on 'allow use of old 'Alpha'Minecraft versions (From 2010)' and 'allow use of old 'Beta'Minecraft versions (From 2010-2011)'then click on the dropbox arrow by 'Use version' and scroll
right to the bottom and the versions should be there. :)
Versions Listed (As of 8/2/2016)
Classic:
c0.0.9a
c0.0.12a_01
c0.0.12a_03
c0.0.13a_04
c0.0.23a_01


c0.31 (Steves)
c0.31 -20100204
Infdev:
Infdev -20100227
Infdev -20100420
Infdev -20100618

a1.0.7
a1.0.16_01

b1.7_01 (Not apart of the pack but downloadable)
b1.9-pre2
b1.9-pre4
b1.9-pre6
Full:
Demo:
Pocket Edition:

Found Versions Yet to be Released (Aren't due to them not being workable as of yet)
Classic c0.0.18a_02 (Still Withheld)
Survival Test/Classic c0.25 (Still Withheld)
RC1 (I'll have to dig up my old skype for the file)

http://www.mediafire.com/download/34stc9ydl3nd247/Minecraft._The_Hidden_Versions.zip
(Version #2)


http://www.mediafire.com/file/lurkoxknm7hrrlh/Minecraft+The+Hidden+Versions+v3.0.zip
(Alpha 1.0.3 Personal Find) 'FAKE DON'T DOWNLOAD'



(Minecraft Survival Test 0.30 'With Sound and Save Features')
(Dropbox Mirror)

'Ingame Screenshots'
c0.0.12a
c0.0.23a_01
Survival Test 0.30

RosalinaFan573
Cal Craft
codwwe348
BowDown097
Kanał Zawieszony
Thanks for finding these .Jars and allowing them to be released.
Codes
It has been suggested that this page be split . Do not split pages until a consensus has been reached.[discuss]
Reason: Outdated and in-date information is being mixed, on the page of outdated server protocol. Note: It is 'Classic' protocol, not 'Current'
The contents of this page are not supported by Mojang Studios or the Minecraft Wiki.
This feature is exclusive to Java Edition.

Documentation on the server protocol used by the Minecraft Classic Creative server.

  • 1Minecraft.net Communication
  • 2Packet Protocol
  • 3Player Position

Minecraft.net Communication[edit]

Heartbeats[edit]

To be able to connect to a server in Minecraft Classic from the Server List, a server must broadcast to minecraft.net a so-called 'heartbeat' every few minutes.

The stock server broadcasts this heartbeat every 45 seconds.

A 'heartbeat' takes the form of an HTTP request to https://minecraft.net/heartbeat.jsp.After sending a heartbeat, the URL for the server is returned.

It is critical to a successful heartbeat that you leave out the 'www' in the HTTP request, as you are going to be targeting it as a URI, not a URL.

It can be a GET or POST request. What version of minecraft is bedrock. A table of the required parameters is below: Google drive links for softwares.

NameDetails
portPort number of the server. This is usually 25565
maxMaximum number of players on the server
nameThe name of the server
publicWhether the server is public (i.e. appears in the lobby) or not. Can be True or False, in that capitalization.
versionMinecraft version, this should be 7
saltA random, 16-character base-62 salt
usersNumber of users connected to the server

The simplest way to send a heartbeat is to open a TCP socket to port 80 on minecraft.net, and send the following (with the values changed, obviously):

GET /heartbeat.jsp?port=25565&max=32&name=My%20Server&public=True&version=7&salt=wo6kVAHjxoJcInKx&users=0, plus a CRLF(Carriage-return and Line feed).

Linux os 32 bit download. Make sure any strings, like name, are escaped.

If everything goes well, in the response body you'll receive a URL to the server. Otherwise you'll get a nice HTML error message. Can you download minecraft on multiple computers. There aren't any HTML headers to parse, as the HTTP version is not specified so HTTP/0.9 is used, which does not have headers.

User Authentication[edit]

The 'key' provided when a user joins the server can be compared to the MD5 checksum of the server's 'salt' plus the username to verify that the user is logged in to minecraft.net with that username. This is useful for establishing enough trust of the name provided to ban or op the player by name.

This is also the way that Notch prevents 'cracked,' or pirated, clients from accessing online servers. When a cracked client tries to connect to an online server, an error will come up at the connection screen saying, 'Failed to Connect: User Not Premium'

Note: This means that you should make sure your 'salt' is kept a secret and shared only with heartbeat.jsp. If your server's 'salt' is visible anywhere to users, it is trivial for users to produce valid-looking 'key's without being logged in to minecraft.net.

Packet Protocol[edit]

Every packet starts with a byte representing the Packet ID.

Protocol Data Types[edit]

TypeSize [bytes]Description
Byte1Single byte integer (0 to 255)
SByte1Single byte signed integer (-128 to 127)
Short2Signed integer, network order (-32768 to 32767)
String64US-ASCII/ISO646-US encoded string padded with spaces (0x20)
Byte array1024Binary data padded with null bytes (0x00)

Client → Server packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Player IdentificationPacket IDByteSent by a player joining a server with relevant information. Current protocol version is 0x07.
Protocol versionByte
UsernameString
Verification keyString
UnusedByte
0x05Set BlockPacket IDByteSent when a user changes a block. The mode field indicates whether a block was created (0x01) or destroyed (0x00).

Block type is always the type player is holding, (even when deleting).

Client assumes that this command packet always succeeds, and so draws the new block immediately. To disallow block creation, server must send back Set Block packet with the old block type.

The XYZ coordinates of the block are just integers representing the coordinate of the block. (As opposed to player coordinates where the lower 5 bits are fractional coordinates)

XShort
YShort
ZShort
ModeByte
Block typeByte
0x08Position and OrientationPacket IDByteSent frequently (even while not moving) by the player with the player's current location and orientation. Player ID is always 255, referring to itself. Player coordinates are fixed-point values with the lowest 5 bits representing the fractional position (i.e. divide by 32 to get actual position in terms of block coordinates). The angle parameters are scaled such that a value of 255 would correspond to 360 degrees.
Player IDByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x0dMessagePacket IDByteContain chat messages sent by player.
Unused, maybe message colorByte (0xFF)
MessageString

Server → Client packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Server IdentificationPacket IDByteResponse to a joining player. The user type indicates whether a player is an op (0x64) or not (0x00) Current protocol version is 0x07.
Protocol versionByte
Server nameString
Server MOTDString
User typeByte
0x01PingPacket IDByteSent to clients periodically. The only way a client can disconnect at the moment is to force it closed, which does not let the server know. The ping packet is used to determine if the connection is still open.
0x02Level InitializePacket IDByteNotifies player of incoming level data.
0x03Level Data ChunkPacket IDByteContains a chunk of gzipped map (not level.dat file). After decompression the map consists of an int(4 bytes) containing number of blocks + raw map array. (chunk is up to 1024 bytes, padded with 0x00s if less).
Chunk LengthShort
Chunk DataByte Array
Percent CompleteByte
0x04Level FinalizePacket IDByteSent after level data is complete and gives map dimensions. The y coordinate is how tall the map is.
X SizeShort
Y SizeShort
Z SizeShort
0x06Set BlockPacket IDByteSent to indicate a block change by physics or by players. In the case of a player change, the server will also echo the block change back to the player who initiated it.
XShort
YShort
ZShort
Block TypeByte
0x07Spawn PlayerPacket IDByteSent to indicate where a new player is spawning in the world. Position and orientation are encoded the same as for packet 0x08 below.
Player IDSByte
Player NameString
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x08Position and Orientation (Player Teleport)Packet IDByteSent with changes in player position and rotation. Teleports player it's sent to if player ID < 0 (For sending initial position in map, and /tp)
Player IDSByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x09Position and Orientation UpdatePacket IDByteSent with changes in player position and rotation. Sent when both position and orientation is changed at the same time.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
Yaw (Heading)Byte
PitchByte
0x0aPosition UpdatePacket IDByteSent with changes in player position.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
0x0bOrientation UpdatePacket IDByteSent with changes in player rotation.

Not required for server operation. Best way to download minecraft.

Player IDSByte
Yaw (Heading)Byte
PitchByte
0x0cDespawn PlayerPacket IDByteSent when player disconnects.
Player IDSByte
0x0dMessagePacket IDByteMessages sent by chat or from the console.
Player IDSByte
MessageString
0x0eDisconnect playerPacket IDByteSent to a player when they're disconnected from the server.
  1. 'Cheat detected: Distance' - happens not only when setting tile too far away from the player (how far is maximum distance and how it is measured?), but also when player moves and then immediately builds.
  2. 'Cheat detected: Tile type'
Disconnect reasonString
0x0fUpdate user typePacket IDByteSent when a player is opped/deopped

Will give or remove the client's ability of breaking Bedrock blocks

  1. User type can be either 100, which will allow the player, or 0, which will disallow the player to break Bedrock blocks
User typeByte

Player Position[edit]

Fixed Point[edit]

Player position is represented via X, Y, and Z fixed-point coordinates. The fractional portion is 5 bits, so dividing the short integers received in position update packets by 32, you will have floating point coordinates for the player. This position corresponds to the center of the client viewport.

Standing On Things[edit]

The bottom of the player's feet is located 1.59375 (fixed-point: 51) units below the center of the viewport, so to position the player on top of a particular block you could send a teleport (0x08) packet specifying a Y value based on the block position as: (Y x 32 + 51)

Orientation[edit]

Classic
It has been suggested that this page be split . Do not split pages until a consensus has been reached.[discuss]
Reason: Outdated and in-date information is being mixed, on the page of outdated server protocol. Note: It is 'Classic' protocol, not 'Current'
The contents of this page are not supported by Mojang Studios or the Minecraft Wiki.
This feature is exclusive to Java Edition.

Documentation on the server protocol used by the Minecraft Classic Creative server.

  • 1Minecraft.net Communication
  • 2Packet Protocol
  • 3Player Position

Minecraft.net Communication[edit]

Heartbeats[edit]

To be able to connect to a server in Minecraft Classic from the Server List, a server must broadcast to minecraft.net a so-called 'heartbeat' every few minutes.

The stock server broadcasts this heartbeat every 45 seconds.

A 'heartbeat' takes the form of an HTTP request to https://minecraft.net/heartbeat.jsp.After sending a heartbeat, the URL for the server is returned.

It is critical to a successful heartbeat that you leave out the 'www' in the HTTP request, as you are going to be targeting it as a URI, not a URL.

It can be a GET or POST request. What version of minecraft is bedrock. A table of the required parameters is below: Google drive links for softwares.

NameDetails
portPort number of the server. This is usually 25565
maxMaximum number of players on the server
nameThe name of the server
publicWhether the server is public (i.e. appears in the lobby) or not. Can be True or False, in that capitalization.
versionMinecraft version, this should be 7
saltA random, 16-character base-62 salt
usersNumber of users connected to the server

The simplest way to send a heartbeat is to open a TCP socket to port 80 on minecraft.net, and send the following (with the values changed, obviously):

GET /heartbeat.jsp?port=25565&max=32&name=My%20Server&public=True&version=7&salt=wo6kVAHjxoJcInKx&users=0, plus a CRLF(Carriage-return and Line feed).

Linux os 32 bit download. Make sure any strings, like name, are escaped.

If everything goes well, in the response body you'll receive a URL to the server. Otherwise you'll get a nice HTML error message. Can you download minecraft on multiple computers. There aren't any HTML headers to parse, as the HTTP version is not specified so HTTP/0.9 is used, which does not have headers.

User Authentication[edit]

The 'key' provided when a user joins the server can be compared to the MD5 checksum of the server's 'salt' plus the username to verify that the user is logged in to minecraft.net with that username. This is useful for establishing enough trust of the name provided to ban or op the player by name.

This is also the way that Notch prevents 'cracked,' or pirated, clients from accessing online servers. When a cracked client tries to connect to an online server, an error will come up at the connection screen saying, 'Failed to Connect: User Not Premium'

Note: This means that you should make sure your 'salt' is kept a secret and shared only with heartbeat.jsp. If your server's 'salt' is visible anywhere to users, it is trivial for users to produce valid-looking 'key's without being logged in to minecraft.net.

Packet Protocol[edit]

Every packet starts with a byte representing the Packet ID.

Protocol Data Types[edit]

TypeSize [bytes]Description
Byte1Single byte integer (0 to 255)
SByte1Single byte signed integer (-128 to 127)
Short2Signed integer, network order (-32768 to 32767)
String64US-ASCII/ISO646-US encoded string padded with spaces (0x20)
Byte array1024Binary data padded with null bytes (0x00)

Client → Server packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Player IdentificationPacket IDByteSent by a player joining a server with relevant information. Current protocol version is 0x07.
Protocol versionByte
UsernameString
Verification keyString
UnusedByte
0x05Set BlockPacket IDByteSent when a user changes a block. The mode field indicates whether a block was created (0x01) or destroyed (0x00).

Block type is always the type player is holding, (even when deleting).

Client assumes that this command packet always succeeds, and so draws the new block immediately. To disallow block creation, server must send back Set Block packet with the old block type.

The XYZ coordinates of the block are just integers representing the coordinate of the block. (As opposed to player coordinates where the lower 5 bits are fractional coordinates)

XShort
YShort
ZShort
ModeByte
Block typeByte
0x08Position and OrientationPacket IDByteSent frequently (even while not moving) by the player with the player's current location and orientation. Player ID is always 255, referring to itself. Player coordinates are fixed-point values with the lowest 5 bits representing the fractional position (i.e. divide by 32 to get actual position in terms of block coordinates). The angle parameters are scaled such that a value of 255 would correspond to 360 degrees.
Player IDByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x0dMessagePacket IDByteContain chat messages sent by player.
Unused, maybe message colorByte (0xFF)
MessageString

Server → Client packets[edit]

Packet IDPurposeField DescriptionField TypeNotes
0x00Server IdentificationPacket IDByteResponse to a joining player. The user type indicates whether a player is an op (0x64) or not (0x00) Current protocol version is 0x07.
Protocol versionByte
Server nameString
Server MOTDString
User typeByte
0x01PingPacket IDByteSent to clients periodically. The only way a client can disconnect at the moment is to force it closed, which does not let the server know. The ping packet is used to determine if the connection is still open.
0x02Level InitializePacket IDByteNotifies player of incoming level data.
0x03Level Data ChunkPacket IDByteContains a chunk of gzipped map (not level.dat file). After decompression the map consists of an int(4 bytes) containing number of blocks + raw map array. (chunk is up to 1024 bytes, padded with 0x00s if less).
Chunk LengthShort
Chunk DataByte Array
Percent CompleteByte
0x04Level FinalizePacket IDByteSent after level data is complete and gives map dimensions. The y coordinate is how tall the map is.
X SizeShort
Y SizeShort
Z SizeShort
0x06Set BlockPacket IDByteSent to indicate a block change by physics or by players. In the case of a player change, the server will also echo the block change back to the player who initiated it.
XShort
YShort
ZShort
Block TypeByte
0x07Spawn PlayerPacket IDByteSent to indicate where a new player is spawning in the world. Position and orientation are encoded the same as for packet 0x08 below.
Player IDSByte
Player NameString
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x08Position and Orientation (Player Teleport)Packet IDByteSent with changes in player position and rotation. Teleports player it's sent to if player ID < 0 (For sending initial position in map, and /tp)
Player IDSByte
XShort
YShort
ZShort
Yaw (Heading)Byte
PitchByte
0x09Position and Orientation UpdatePacket IDByteSent with changes in player position and rotation. Sent when both position and orientation is changed at the same time.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
Yaw (Heading)Byte
PitchByte
0x0aPosition UpdatePacket IDByteSent with changes in player position.

Not required for server operation.

Player IDSByte
Change in XSByte
Change in YSByte
Change in ZSByte
0x0bOrientation UpdatePacket IDByteSent with changes in player rotation.

Not required for server operation. Best way to download minecraft.

Player IDSByte
Yaw (Heading)Byte
PitchByte
0x0cDespawn PlayerPacket IDByteSent when player disconnects.
Player IDSByte
0x0dMessagePacket IDByteMessages sent by chat or from the console.
Player IDSByte
MessageString
0x0eDisconnect playerPacket IDByteSent to a player when they're disconnected from the server.
  1. 'Cheat detected: Distance' - happens not only when setting tile too far away from the player (how far is maximum distance and how it is measured?), but also when player moves and then immediately builds.
  2. 'Cheat detected: Tile type'
Disconnect reasonString
0x0fUpdate user typePacket IDByteSent when a player is opped/deopped

Will give or remove the client's ability of breaking Bedrock blocks

  1. User type can be either 100, which will allow the player, or 0, which will disallow the player to break Bedrock blocks
User typeByte

Player Position[edit]

Fixed Point[edit]

Player position is represented via X, Y, and Z fixed-point coordinates. The fractional portion is 5 bits, so dividing the short integers received in position update packets by 32, you will have floating point coordinates for the player. This position corresponds to the center of the client viewport.

Standing On Things[edit]

The bottom of the player's feet is located 1.59375 (fixed-point: 51) units below the center of the viewport, so to position the player on top of a particular block you could send a teleport (0x08) packet specifying a Y value based on the block position as: (Y x 32 + 51)

Orientation[edit]

A yaw value of 0 means the player is facing in the Z- (negative Z) direction. This value increases in a clockwise direction as seen from above. If we call the negative Z direction 'North', then a yaw of 64 means 'East', 128 means 'South', and 192 means 'West'.

A pitch value of 0 means level and this value increases in a downward direction. 64 is down, and 192 is up. Values of 65 to 191 should never occur because the player cannot look further up or down than the 64 → 0, 255 → 192 range. However, the Minecraft Classic client does not ignore invalid values, so it is possible to make players' heads 'upside-down'.

Color codes[edit]

This article is about classic server protocol. For the updated color codes used in the current version of Minecraft, see Formatting codes.

Messages sent from the server to the client can contain color codes, which allow coloring of text for various purposes.

An ampersand symbol (&) followed by a hex digit in the message tells the client to switch colors while displaying text. The current version of the game uses a section (§) symbol, but the 0.30 version uses ampersands. For the formatting codes for the current version of the game, see Formatting codes.

Color coding at the start of the message will only work if the player ID byte is less than 127. If it's 127 or higher, the game automatically adds &e before the message, making it yellow. However, color codes after the first character still work. If you use an ID below 127, it doesn't add a color code, so the ones you use will work.

Hex digit to color mapping.

Minecraft Classic Codes Wiki

SampleCodeCommon NameAlternate NameForeground ColorBackground Color
RGBHEXRGBHEX
&0BlackBlack000#000000#000000
&1Dark BlueNavy00170#00A0042#00002A
&2Dark GreenGreen01700#0A00420#002A00
&3TealTeal0170170#0AA04242#002A2A
&4Dark RedMaroon17000#A004200#2A0000
&5PurplePurple1700170#A0A42042#2A002A
&6Dark YellowGold1701700#AA042420#2A2A00
&7GraySilver170170170#AAA424242#2A2A2A
&8Dark GrayGray858585#555212121#151515
&9IndigoBlue8585255#55F212163#15153F
&aBright GreenLime8525585#5F5216321#153F15
&bCyanAqua85255255#5FF216363#153F3F
&cRedRed2558585#F55632121#3F1515
&dPinkPink25585255#F5F632163#3F153F
&eYellowYellow25525585#FF5636321#3F3F15
&fWhiteWhite255255255#FFF636363#3F3F3F
Versions
  • Demo
  • PC Gamer Demo(Beta 1.3)
Development
Version history
  • Classic
  • Removed features
  • Mentioned features
Technical
  • Known bugs
  • Commands
  • Data values
.minecraft
Development resources
  • Structure block file format
Legacy development resources
  • Classic server protocol
Multiplayer
Game customization

Minecraft Classic Combat

Retrieved from 'https://minecraft.gamepedia.com/Classic_server_protocol?oldid=1651794'




broken image