<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mod &#8211; Eamon Woortman</title>
	<atom:link href="https://eamonwoortman.github.io/project-tag/mod/feed/" rel="self" type="application/rss+xml" />
	<link>https://eamonwoortman.github.io/</link>
	<description></description>
	<lastBuildDate>Sat, 20 May 2023 18:56:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>
	<item>
		<title>DutchFix for W:ET – TCE</title>
		<link>https://eamonwoortman.github.io/project/dutchfix-for-wet-tce/</link>
					<comments>https://eamonwoortman.github.io/project/dutchfix-for-wet-tce/#respond</comments>
		
		<dc:creator><![CDATA[eamon]]></dc:creator>
		<pubDate>Fri, 19 May 2023 18:45:33 +0000</pubDate>
				<guid isPermaLink="false">https://eamonwoortman.github.io/?post_type=project&#038;p=585</guid>

					<description><![CDATA[Dutchfix&#160;is&#160;a QMM plugin I created with Merlin1991 to counteract a few nukes and exploits in the awesome True Combat Elite(TCE) mod. TrueCombat:Elite (TCE) is a modern world total conversion of the free, popular, stand-alone third-person shooter, Wolfenstein: Enemy Territory. That is, TCE is an entirely free game, made by gamers, for gamers. I was one [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>Dutchfix</strong>&nbsp;is&nbsp;a QMM plugin I created with Merlin1991 to counteract a few nukes and exploits in the awesome True Combat Elite(TCE) mod.</p>



<blockquote class="wp-block-quote">
<p><a href="http://www.truecombatelite.com/" target="_blank" rel="noreferrer noopener">TrueCombat:Elite (TCE)</a> is a modern world total conversion of the free, popular, stand-alone third-person shooter, Wolfenstein: Enemy Territory. That is, TCE is an entirely free game, made by gamers, for gamers.</p>
</blockquote>



<p>I was one of the community leaders of TeamNeelix&nbsp;(later GoNe), we owned a couple of game servers which were quite popular.<br>Unfortunately, when the mod was first released, it had some exploits and nuke vulnerabilities that could be used to crash a server.<br>Obviously when you own a few servers, you’re going to get targeted by people who want to harm it. So with help of the community we found out how the exploits worked.</p>



<p>Since TCE was a closed-source project, we needed a way of fixing it without the source code.<br>Fortunately the commands used to exploit were all server commands, meaning we could intercept them by a hook between the engine and the mod.</p>



<p>We used <a href="https://sourceforge.net/projects/qmm/" target="_blank" rel="noreferrer noopener">Quake3 Multimod(QMM)</a> to create a plugin which checked all the commands and ignored them when it was an exploit.<br>The plugin would also optionally automatically ban nukers.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eamonwoortman.github.io/project/dutchfix-for-wet-tce/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GameMonkey ScriptMod</title>
		<link>https://eamonwoortman.github.io/project/gamemonkey-scriptmod/</link>
					<comments>https://eamonwoortman.github.io/project/gamemonkey-scriptmod/#respond</comments>
		
		<dc:creator><![CDATA[eamon]]></dc:creator>
		<pubDate>Mon, 13 Feb 2017 18:39:00 +0000</pubDate>
				<guid isPermaLink="false">https://eamonwoortman.github.io/?post_type=project&#038;p=584</guid>

					<description><![CDATA[GameMonkey Scriptmod&#160;is a&#160;project where we implemented the scripting language GameMonkey into a Quake3 Multimod plugin.Quake3 Multimod is a plugin manager which sits between the Quake3 engine and the actual game mod. This allows the plugin developers to hook any behavior into roughly any Quake3 based game without having to change the mod.GameMonkey&#160;is an embedded scripting [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>GameMonkey Scriptmod</strong>&nbsp;is a&nbsp;project where we implemented the scripting language GameMonkey into a Quake3 Multimod plugin.<br><a href="https://sourceforge.net/projects/qmm/" target="_blank" rel="noreferrer noopener">Quake3 Multimod</a> is a plugin manager which sits between the Quake3 engine and the actual game mod. This allows the plugin developers to hook any behavior into roughly any Quake3 based game without having to change the mod.<br><a href="http://www.gmscript.com/" target="_blank" rel="noreferrer noopener">GameMonkey</a>&nbsp;is an embedded scripting language that looks similar to C. This makes it easier to work with by programmers and other people in general.<br>We started the project because we wanted more control over the behavior of the server. We already had a PHP bot tailing the server logs but this was slow and grew complicated quickly.</p>



<p>GameMonkey Scriptmod featured;</p>



<ul>
<li>100% scriptable admin Interface</li>



<li>Scriptable Rcon-like interface</li>



<li>Interface for clan Members. (beside ref login)</li>



<li>Interface for clan Friends. (beside ref login)</li>



<li>Access to your filesystem by .gm script Functions</li>



<li>Works with ALL Enemy Territory Mods (etmain/etpro/etbub/shrubmod/tce/etc.)</li>



<li>Easy to modify. No C/C++ knowledge necessary.</li>



<li>Change your ServerMod scriptfile without Server restart.</li>



<li>Easy Script Syntax. Not as complicated as LUA.</li>



<li>A lot of Script Examples.</li>



<li>Fast. GameMonkey is one of the fastest script languages.</li>



<li>Define your own “/” commands. Example: “/ban ID”, “/kick ID”, “drop ID”</li>



<li>Create an individual gameserver mod. Personalize your Server.</li>



<li>Exchange your script files with other serveradmins.</li>



<li>Client to client private chat</li>



<li>IRC-like channel chat</li>
</ul>



<p>I developed this project with another developer: Apologet.<br>Apologet started the project and later involved me. Later we got help from im2good4u and Dr.Evil.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eamonwoortman.github.io/project/gamemonkey-scriptmod/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>New Generation Mod Plus</title>
		<link>https://eamonwoortman.github.io/project/new-generation-mod-plus/</link>
					<comments>https://eamonwoortman.github.io/project/new-generation-mod-plus/#respond</comments>
		
		<dc:creator><![CDATA[eamon]]></dc:creator>
		<pubDate>Sun, 01 Jan 2017 18:48:00 +0000</pubDate>
				<guid isPermaLink="false">https://eamonwoortman.github.io/?post_type=project&#038;p=587</guid>

					<description><![CDATA[New Generation Mod Plus&#160;is&#160;a Return to Castle Wolfenstein modification I did with MrPingu in 2007-2008. It was one of the first mods&#160;available on RtCW DEMO and later RtCW 1.0. It was also the first C programming I did after scripting around in Perl and PHP. New Generation Mod Plus was the second iteration on the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>New Generation Mod Plus</strong>&nbsp;is&nbsp;a Return to Castle Wolfenstein modification I did with MrPingu in 2007-2008.</p>



<p>It was one of the first mods&nbsp;available on RtCW DEMO and later RtCW 1.0. It was also the first C programming I did after scripting around in Perl and PHP.</p>



<p>New Generation Mod Plus was the second iteration on the first New Generation Mod. It was alot more stable with bug/crash fixes and contained a nice admin system.<br>It also&nbsp;featured a “Delagged System”, a shot predication system, we implemented from a Code3Arena article.</p>



<p>Back then <a href="https://web.archive.org/web/20080802054042/http://code3arena.planetquake.gamespy.com/tutorials">Code3Arena</a>&nbsp;contained a lot of modding tutorials for Quake3. It’s thanks to Code3Arena and modding I learned most of my C programming.<br>Although the tutorials were specifically made for Quake3 Arena(Q3A), we could use some of the tutorials and project them on the RtCW code. &nbsp;This is because RtCW’s engine&nbsp;was based on the Quake3 Arena’s “id Tech 3” engine.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://eamonwoortman.github.io/project/new-generation-mod-plus/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mousetrap 3</title>
		<link>https://eamonwoortman.github.io/project/mousetrap-3/</link>
					<comments>https://eamonwoortman.github.io/project/mousetrap-3/#respond</comments>
		
		<dc:creator><![CDATA[eamon]]></dc:creator>
		<pubDate>Sun, 01 Jan 2017 18:45:00 +0000</pubDate>
				<guid isPermaLink="false">https://eamonwoortman.github.io/?post_type=project&#038;p=586</guid>

					<description><![CDATA[Mousetrap3&#160;is a multi-component anti-cheat system containing a anti-cheat client which detects known cheats and injectors, a server mod which could ban cheaters and talk to the back-end and lastly a back-end which stored the bans.Return to Castle Wolfenstein 1.0 had no anti-cheat system when I did this project. In order to catch cheaters, we had [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>Mousetrap3</strong>&nbsp;is a multi-component anti-cheat system containing a anti-cheat client which detects known cheats and injectors, a server mod which could ban cheaters and talk to the back-end and lastly a back-end which stored the bans.<br>Return to Castle Wolfenstein 1.0 had no anti-cheat system when I did this project. In order to catch cheaters, we had to monitor players, repeatedly make demo’s and collectively decide whether the player was cheating. This was a painful process as the caught cheaters could easily spoof their banned IP’s and try again under a different nickname.<br>I had the idea of checking the client by looking at some cheat source codes from known cheat websites. These sources hooked in between the engine and client mod. I figured I could do the same and somehow communicate to the server.</p>



<p>The result is a simple client hook which;</p>



<ul>
<li>generated a GUID from the player’s hard drive</li>



<li>scans the process list for known injectors</li>



<li>scans the loaded module list for known cheats</li>



<li>scans for known activated cheat variables</li>



<li>sends a list of client variables to the server</li>
</ul>



<p>Once the client has analysed the player’s instance, it would send the result to the server.</p>



<p>The Mousetrap&nbsp;server would then kick and ban that cheating player by GUID by sending it to the back-end.<br>Besides checking the players for cheats, the server would enforce a variable limit to the 4 variables known to be used for warping or misuse;</p>



<ul>
<li>”cl_maxpackets”</li>



<li>”rate”</li>



<li>”cl_timenudge”</li>



<li>”cg_shadows”</li>
</ul>



<p>In hindsight, the server was a bit messy and not super secure (although the data was obscured). I also changed tactics, instead of using QMM, I created a “Frankenstein library” which did the same thing as the client hook, but now for the game mod on the serverside.<br>The back-end was a collection of simple PHP scripts which was connected to a MySQL server.</p>



<p>I did this project in 2009 and I wasn’t the experienced developer I am now so it was all a bit messy.<br>The setup worked quite good but people were reluctant of installing it because it meant they had to manually install stuff. Also most of the server admins didn’t want to cooperate because they were scared of losing players. In the end I shut the project down because there wasn’t enough interest in it and I started with the <a href="https://eamonwoortman.github.io/project/rtcw-1-0pb/" data-type="URL" data-id="https://eamonwoortman.github.io/project/rtcw-1-0pb/" target="_blank" rel="noreferrer noopener">RTCW 1.0PB project</a> which worked better anyway.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://eamonwoortman.github.io/project/mousetrap-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
