<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.rplace.live/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A02%3AC7C%3A643A%3AEE00%3A4A3B%3A777B%3A1884%3A56D1</id>
	<title>rplace.live wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rplace.live/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A02%3AC7C%3A643A%3AEE00%3A4A3B%3A777B%3A1884%3A56D1"/>
	<link rel="alternate" type="text/html" href="https://wiki.rplace.live/Special:Contributions/2A02:C7C:643A:EE00:4A3B:777B:1884:56D1"/>
	<updated>2026-06-06T01:33:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0-alpha</generator>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Zekiahepic&amp;diff=879</id>
		<title>Zekiahepic</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Zekiahepic&amp;diff=879"/>
		<updated>2024-04-14T22:56:47Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: Undo revision 1289 by 89.204.89.9 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;informbox&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | {{{subj|zekiahepic}}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | [[File:Zekiahepic discord profile picture.png|256px]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center&amp;quot;  | &amp;lt;small&amp;gt;{{{capt|The green default discord profile picture used by zekiahepic}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Owner&lt;br /&gt;
| {{{leaders|[[of rplace.tk]]}}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extremely overworked main developer of rplace.tk. Responsible for most of the updates that deviate from the base r/place game (and also 90% of the site bugs). Will say he is going to add a feature/carry out a moderation action/do l&#039;&#039;&#039;i&#039;&#039;&#039;terally anything then procee&#039;&#039;&#039;d&#039;&#039;&#039; to disappear from ex&#039;&#039;&#039;i&#039;&#039;&#039;stence or ghost whoever asked. Has his discord permanently set to display as offline because he is too scared to go on and face all the players waiting for him to deliver things he told them he would carry out. Supreme internet troll and will intentionally work &#039;&#039;&#039;o&#039;&#039;&#039;n things nobody has asked for out of spite. Has been earning negative money since the project started and is about £50 behind in AWS invoices, ignoring about 100 emails from amazon to pay (his accoun&#039;&#039;&#039;t&#039;&#039;&#039; got terminated forcing rplace to have to make a server migration).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;There is no country in the world that has wages even 1% as low as what I earn from working on rplace&#039;&#039;&amp;quot; - Zekiahepic 15/07/2023&lt;br /&gt;
&lt;br /&gt;
Zekiahepic is an archlinux user and an advocate for open source software. He hates the MIT license with a passion unmet by even the most extreme emotions humanly conceivable, and believes in every software being put under the GPL 3 to protect against corporations embracing, extending and extinguishing FOSS software.&lt;br /&gt;
&lt;br /&gt;
Zekiahepic is also a member of [[Catgirl_Slayers|Catgirl Slayers]], and in the lore, has had two roles;&lt;br /&gt;
First he was the king of a land who fell corrupt and perished against Bushu in battle.&lt;br /&gt;
Secondly, a second Zekiah[[11771199/11-1070107-1+1719!|, Ze]]kiahepic became the young protegee of Cyart; he fights with the &amp;quot;arch blades&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In late July Zekiah departed Place Tk Live Discord. Although leaving many questions in his absence, Zekiah did make presence known during multibot attacks. To be concluded..&lt;br /&gt;
&lt;br /&gt;
Live Zekiah Status Update:&lt;br /&gt;
The staffs thoughts and wishes are with Zekiah&#039;s family (Moment)&lt;br /&gt;
Zekiah passed away a few days ago after a physical altercation at a Kebab shop after engaging a mob of patriotic Albanian hoodlums who were attempting to rob the Serbian store owner.&lt;br /&gt;
&lt;br /&gt;
It was a very shocking event and none of us saw this coming, he did not even got to update the accounts or carry out the Ataturk Oppenheimer Fortnite event we all so deeply anticipated.&lt;br /&gt;
&lt;br /&gt;
His family remark he was taken too soon, but the doctors disagreed.&lt;br /&gt;
&lt;br /&gt;
In hospital, he remarked to his close friends whilst in critical condition; &amp;quot;I wonder how many Turkish flags will be built to commemorate my death&amp;quot;.&lt;br /&gt;
He died a few hours later of an unrelated case of self induced morphine overdose. However, it is highly suspected there was foul play by federal agencies.&lt;br /&gt;
&lt;br /&gt;
In his will he specified that the site be passed down to the local Jehovas&#039; Witness centre, who will now be overseeing server operations.&lt;br /&gt;
Because of this, we are demoting Kay, Etta and Embed as mods.&lt;br /&gt;
[[File:Zekiahcanvasrwiting.png|640px|left|Zekiah writing on the canvas during fierce multi-bot attack]]&lt;br /&gt;
&lt;br /&gt;
Edit:he is actually back lol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Edit:some controversial stuff happened in a [[discord raid]] and now he isn&#039;t as much praised&amp;lt;/s&amp;gt; Zekiah is praised more than ever by the community, which even led to a &amp;quot;Fuck Blob&amp;quot; message appearing on the canvas.&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=List_of_Admins&amp;diff=329</id>
		<title>List of Admins</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=List_of_Admins&amp;diff=329"/>
		<updated>2024-04-14T22:56:24Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: Add admins&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[BlobKat]]&lt;br /&gt;
* [[Zekiahepic]]&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Zubigri&amp;diff=936</id>
		<title>Zubigri</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Zubigri&amp;diff=936"/>
		<updated>2023-11-13T16:20:56Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: Fix page formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Me!==&lt;br /&gt;
&#039;&#039;&#039;IP ADDRESS:&#039;&#039;&#039; 188.186.84.61, 188.186.92.18&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;COUNTRY:&#039;&#039;&#039; Russia &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;REGION:&#039;&#039;&#039; Tyumenskaya oblast&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;CITY:&#039;&#039;&#039; Tyumen&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ISP:&#039;&#039;&#039; JSC ER-Telecom Holding&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ORGANIZATION:&#039;&#039;&#039; Not available&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LATITUDE:&#039;&#039;&#039; 57.150729&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LONGITUDE:&#039;&#039;&#039; 65.652923&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Info==&lt;br /&gt;
* [[Dick|Member]] of [[Pixel Abusers]] (Not anymore?)&lt;br /&gt;
* [[Dick|Member]] of [[R/place PNG Abusers]] (Not anymore?)&lt;br /&gt;
* [[Dick|Member]] of [[APOD]] (?)&lt;br /&gt;
* [[Zubigri]] is an unpredictable hermit, in a good way.&lt;br /&gt;
* Don&#039;t like country and gender flags.&lt;br /&gt;
* IM Z-U-B-I-G-R-I, not zugribi or zubirgi.&lt;br /&gt;
* [[S3V3N|&#039;&#039;Weird.&#039;&#039;]]&lt;br /&gt;
* Hate [[Turkey|Turk fags]].&lt;br /&gt;
* Creator of [[21 AUGUST|21 AUG!]].&lt;br /&gt;
* Creator of [[Δ⠀ΔΔ]] (soon new mega Δ⠀ΔΔ 250x1000).&lt;br /&gt;
* Creator of [[Cyan void]].&lt;br /&gt;
* Creator of (creating...).&lt;br /&gt;
* I said ЁЖ!!! like 5000000 times.&lt;br /&gt;
* [[List of lists|don&#039;t create useless pages]].&lt;br /&gt;
[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ]]              &lt;br /&gt;
 Вах! Вах! Вах! Я люблю пельмени, привези мне их, я дам тебе за это медный провод, упоковку от печенья, и 100 руб! Согласен?&lt;br /&gt;
−	&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;69420 3301[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ]]993 1408 300 228 666 777 1 2 3 4 5 7 9 10 32568 1337 10957 52 -1 -3 92 118 G64 ДЕРЕВО3 8 800 555 35 35&#039;&#039;&#039;&#039;&#039;[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ          ]]&lt;br /&gt;
[[JK pages list|c]] z q k w s a d z. i can say my ip.&lt;br /&gt;
*Empty.&lt;br /&gt;
*Ping me M = O = R = E.&lt;br /&gt;
*~120 alts f eheeeehheheheehheheheehehehheehh.&lt;br /&gt;
CRAZYMAN.&lt;br /&gt;
# KILL TURKZ!!! - Zubigri&lt;br /&gt;
&lt;br /&gt;
CHAOS! CHAOS! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Я это ты...&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Zubigri&amp;diff=935</id>
		<title>Zubigri</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Zubigri&amp;diff=935"/>
		<updated>2023-11-13T16:18:38Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: Undo revision 1088 by 31.163.55.219 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Me!==&lt;br /&gt;
IP ADDRESS:188.186.84.61, 188.186.92.18&amp;lt;br&amp;gt;&lt;br /&gt;
COUNTRY:Russia &amp;lt;br&amp;gt;&lt;br /&gt;
REGION:Tyumenskaya oblast&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
CITY:Tyumen&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
ISP:JSC ER-Telecom Holding&amp;lt;br&amp;gt;&lt;br /&gt;
ORGANIZATION:Not available&amp;lt;br&amp;gt;&lt;br /&gt;
LATITUDE:57.150729&amp;lt;br&amp;gt;&lt;br /&gt;
LONGITUDE:65.652923&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Info==&lt;br /&gt;
* [[Dick|Member]] of [[Pixel Abusers]] (Not anymore?)&lt;br /&gt;
* [[Dick|Member]] of [[R/place PNG Abusers]] (Not anymore?)&lt;br /&gt;
* [[Dick|Member]] of [[APOD]] (?)&lt;br /&gt;
* [[Zubigri]] is an unpredictable hermit, in a good way.&lt;br /&gt;
* Don&#039;t like country and gender flags.&lt;br /&gt;
* IM Z-U-B-I-G-R-I, not zugribi or zubirgi.&lt;br /&gt;
* [[S3V3N|&#039;&#039;Weird.&#039;&#039;]]&lt;br /&gt;
* Hate [[Turkey|Turk fags]].&lt;br /&gt;
* Creator of [[21 AUGUST|21 AUG!]].&lt;br /&gt;
* Creator of [[Δ⠀ΔΔ]] (soon new mega Δ⠀ΔΔ 250x1000).&lt;br /&gt;
* Creator of [[Cyan void]].&lt;br /&gt;
* Creator of (creating...).&lt;br /&gt;
* I said ЁЖ!!! like 5000000 times.&lt;br /&gt;
* [[List of lists|don&#039;t create useless pages]].&lt;br /&gt;
[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ]]              &lt;br /&gt;
 Вах! Вах! Вах! Я люблю пельмени, привези мне их, я дам тебе за это медный провод, упоковку от печенья, и 100 руб! Согласен?&lt;br /&gt;
−	&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;69420 3301[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ]]993 1408 300 228 666 777 1 2 3 4 5 7 9 10 32568 1337 10957 52 -1 -3 92 118 G64 ДЕРЕВО3 8 800 555 35 35&#039;&#039;&#039;&#039;&#039;[[﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽ ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽|ㅤ          ]]&lt;br /&gt;
[[JK pages list|c]] z q k w s a d z. i can say my ip.&lt;br /&gt;
*Empty.&lt;br /&gt;
*Ping me M = O = R = E.&lt;br /&gt;
*~120 alts f eheeeehheheheehheheheehehehheehh.&lt;br /&gt;
CRAZYMAN.&lt;br /&gt;
# KILL TURKZ!!! - Zubigri&lt;br /&gt;
&lt;br /&gt;
CHAOS! CHAOS! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Я это ты...&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Development&amp;diff=220</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Development&amp;diff=220"/>
		<updated>2023-10-24T12:33:07Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: /* Chat history packet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rplace.tk has had a rocky development history. With such a high demand for different things, features have remained broken, scrapped or non-existent for long periods of time. Despite these issues, with the 10+ contributors to the main project, lead mostly by zekiahepic, and initially BlobKat. The site has found a relatively stable update cycle, with new features, fixes and bug improvements appearing each fortnight.&lt;br /&gt;
&lt;br /&gt;
= The game protocol =&lt;br /&gt;
The site was initially coded within a day, and main development, jump started by BlobKat over three. This has had many long lasting impacts on the site, resulting in some development decisions that made sense for that short term period, but have proved very complicated and confusing in the long term. One of the biggest impacts was the choice to use &amp;quot;git and changes system&amp;quot;, for syncing the canvas between the client and server, while also ensuring minimal bandwidth on the hoster&#039;s behalf. Further complicated by the introduction of the new server software, RplaceServer, which chose to use a completely new system, wherein the site is solely dependent on the monolithic server software, which handles both the socket live pixels, and hosting the canvas files directly for client consumption in a compressed form.&lt;br /&gt;
&lt;br /&gt;
== Packets ==&lt;br /&gt;
The site uses websocket for live client server communication. All packets are composed of an initial &#039;&#039;&#039;code&#039;&#039;&#039; byte, representing the type of the packet to be identified on the server, with all numberic packet data being formatted as big endian. &lt;br /&gt;
&lt;br /&gt;
=== Pixel packet: ===&lt;br /&gt;
The pixel packet is one of the simplest. It is a six byte packet, the first byte being the packet &#039;&#039;&#039;code,&#039;&#039;&#039; the second to 5th &lt;br /&gt;
bytes being &#039;&#039;&#039;position (board index)&#039;&#039;&#039; of the pixel, represented by a 4 byte unsigned 32 bit integer, and finally a byte representing the index of the &#039;&#039;&#039;colour&#039;&#039;&#039; in the palette that the pixel represents.&lt;br /&gt;
&lt;br /&gt;
One can retrieve the X and Y position from an given pixel index with some basic math. To get the X position, we do &#039;&#039;&#039;index % canvas_width&#039;&#039;&#039;, and to get the Y position &#039;&#039;&#039;floor(index / canvas_width)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Chat history packet ===&lt;br /&gt;
The chat history packet is used to ask the server to load a certain set of messages from the database, for example, in the context of attempting to load previous chat messages from before a client connected to the game session when scrolling up in the chat history.&lt;br /&gt;
&lt;br /&gt;
 * (u8) packetCode = 13&lt;br /&gt;
 * (u32) fromMessageId (If set to 0, AND you are asking for messages sent BEFORE this specified message Id (see next byte), it will give you messages relative the most recent messageId in the channel (see last n bytes))&lt;br /&gt;
 * (u8) message count AND before|after (last 7 bits will tell the server how many messages you want before or since the specified message Id, first (most significant) bit will tell the server if you want messages from BEFORE or AFTER the specified message Id)&lt;br /&gt;
 * (n bytes) name of chat channel as a UTF8 encoded string&lt;br /&gt;
&lt;br /&gt;
MessageId ascends as new chat messages are sent, so greater message ID = more recent.&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Development&amp;diff=219</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Development&amp;diff=219"/>
		<updated>2023-10-24T12:32:07Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: /* Chat history packet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rplace.tk has had a rocky development history. With such a high demand for different things, features have remained broken, scrapped or non-existent for long periods of time. Despite these issues, with the 10+ contributors to the main project, lead mostly by zekiahepic, and initially BlobKat. The site has found a relatively stable update cycle, with new features, fixes and bug improvements appearing each fortnight.&lt;br /&gt;
&lt;br /&gt;
= The game protocol =&lt;br /&gt;
The site was initially coded within a day, and main development, jump started by BlobKat over three. This has had many long lasting impacts on the site, resulting in some development decisions that made sense for that short term period, but have proved very complicated and confusing in the long term. One of the biggest impacts was the choice to use &amp;quot;git and changes system&amp;quot;, for syncing the canvas between the client and server, while also ensuring minimal bandwidth on the hoster&#039;s behalf. Further complicated by the introduction of the new server software, RplaceServer, which chose to use a completely new system, wherein the site is solely dependent on the monolithic server software, which handles both the socket live pixels, and hosting the canvas files directly for client consumption in a compressed form.&lt;br /&gt;
&lt;br /&gt;
== Packets ==&lt;br /&gt;
The site uses websocket for live client server communication. All packets are composed of an initial &#039;&#039;&#039;code&#039;&#039;&#039; byte, representing the type of the packet to be identified on the server, with all numberic packet data being formatted as big endian. &lt;br /&gt;
&lt;br /&gt;
=== Pixel packet: ===&lt;br /&gt;
The pixel packet is one of the simplest. It is a six byte packet, the first byte being the packet &#039;&#039;&#039;code,&#039;&#039;&#039; the second to 5th &lt;br /&gt;
bytes being &#039;&#039;&#039;position (board index)&#039;&#039;&#039; of the pixel, represented by a 4 byte unsigned 32 bit integer, and finally a byte representing the index of the &#039;&#039;&#039;colour&#039;&#039;&#039; in the palette that the pixel represents.&lt;br /&gt;
&lt;br /&gt;
One can retrieve the X and Y position from an given pixel index with some basic math. To get the X position, we do &#039;&#039;&#039;index % canvas_width&#039;&#039;&#039;, and to get the Y position &#039;&#039;&#039;floor(index / canvas_width)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Chat history packet ===&lt;br /&gt;
The chat history packet is used to ask the server to load a certain set of messages from the database, for example, in the context of attempting to load previous chat messages from before a client connected to the game session when scrolling up in the chat history.&lt;br /&gt;
&lt;br /&gt;
 * (u8) packetCode = 13&lt;br /&gt;
 * (u32 fromMessageId (If set to 0, AND you are asking for messages sent BEFORE this specified message Id (see next byte), it will give you messages relative the most recent messageId in the channel (see last n bytes))&lt;br /&gt;
 * (u8) message count AND before|after (last 7 bits will tell the server how many messages you want before or since the specified message Id, first (most significant) bit will tell the server if you want messages from BEFORE or AFTER the specified message Id)&lt;br /&gt;
 * (n bytes) name of chat channel as a UTF8 encoded string&lt;br /&gt;
&lt;br /&gt;
MessageId ascends as new chat messages are sent, so greater message ID = more recent.&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
	<entry>
		<id>https://wiki.rplace.live/index.php?title=Development&amp;diff=218</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.rplace.live/index.php?title=Development&amp;diff=218"/>
		<updated>2023-10-24T12:29:11Z</updated>

		<summary type="html">&lt;p&gt;2A02:C7C:643A:EE00:4A3B:777B:1884:56D1: Change this to talk about chat history packet instead. Chat packet is obsolete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rplace.tk has had a rocky development history. With such a high demand for different things, features have remained broken, scrapped or non-existent for long periods of time. Despite these issues, with the 10+ contributors to the main project, lead mostly by zekiahepic, and initially BlobKat. The site has found a relatively stable update cycle, with new features, fixes and bug improvements appearing each fortnight.&lt;br /&gt;
&lt;br /&gt;
= The game protocol =&lt;br /&gt;
The site was initially coded within a day, and main development, jump started by BlobKat over three. This has had many long lasting impacts on the site, resulting in some development decisions that made sense for that short term period, but have proved very complicated and confusing in the long term. One of the biggest impacts was the choice to use &amp;quot;git and changes system&amp;quot;, for syncing the canvas between the client and server, while also ensuring minimal bandwidth on the hoster&#039;s behalf. Further complicated by the introduction of the new server software, RplaceServer, which chose to use a completely new system, wherein the site is solely dependent on the monolithic server software, which handles both the socket live pixels, and hosting the canvas files directly for client consumption in a compressed form.&lt;br /&gt;
&lt;br /&gt;
== Packets ==&lt;br /&gt;
The site uses websocket for live client server communication. All packets are composed of an initial &#039;&#039;&#039;code&#039;&#039;&#039; byte, representing the type of the packet to be identified on the server, with all numberic packet data being formatted as big endian. &lt;br /&gt;
&lt;br /&gt;
=== Pixel packet: ===&lt;br /&gt;
The pixel packet is one of the simplest. It is a six byte packet, the first byte being the packet &#039;&#039;&#039;code,&#039;&#039;&#039; the second to 5th &lt;br /&gt;
bytes being &#039;&#039;&#039;position (board index)&#039;&#039;&#039; of the pixel, represented by a 4 byte unsigned 32 bit integer, and finally a byte representing the index of the &#039;&#039;&#039;colour&#039;&#039;&#039; in the palette that the pixel represents.&lt;br /&gt;
&lt;br /&gt;
One can retrieve the X and Y position from an given pixel index with some basic math. To get the X position, we do &#039;&#039;&#039;index % canvas_width&#039;&#039;&#039;, and to get the Y position &#039;&#039;&#039;floor(index / canvas_width)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Chat history packet ===&lt;br /&gt;
The chat history packet is used to ask the server to load a certain set of messages from the database, for example, in the context of attempting to load previous chat messages from before a client connected to the game session when scrolling up in the chat history.&lt;br /&gt;
&lt;br /&gt;
 * (u8) packetCode = 13&lt;br /&gt;
 * (u32 fromMessageId (if it is set to message ID 0, and you are asking for messages sent BEFORE this message ID (see next byte), it will actually just give you messages relative the most recent messageId in the channel (see last n bytes))&lt;br /&gt;
 * (u8) message count AND before|after (last 7 bits will tell the server how many messages you want since that message id, first(most significant) bit will tell the server if you want all messages BEFORE or AFTER that message ID)&lt;br /&gt;
 * (n bytes) name of chat channel as a UTF8 encoded string &lt;br /&gt;
&lt;br /&gt;
MessageId ascends as new chat messages are sent, so greater message ID = more recent.&lt;/div&gt;</summary>
		<author><name>2A02:C7C:643A:EE00:4A3B:777B:1884:56D1</name></author>
	</entry>
</feed>