<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3ACreate_cheat_table_full%3Ahealth_hack</id>
	<title>Tutorials:Create cheat table full:health hack - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3ACreate_cheat_table_full%3Ahealth_hack"/>
	<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;action=history"/>
	<updated>2026-04-04T21:18:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=6979&amp;oldid=prev</id>
		<title>Dykis: /* One hit kills */ &quot;sense&quot; -&gt; &quot;since&quot;.</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=6979&amp;oldid=prev"/>
		<updated>2020-08-14T12:57:19Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;One hit kills: &lt;/span&gt; &amp;quot;sense&amp;quot; -&amp;gt; &amp;quot;since&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:57, 14 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dykis</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=6711&amp;oldid=prev</id>
		<title>Exterminator: /* Step 1 */  Typo fixed</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=6711&amp;oldid=prev"/>
		<updated>2019-04-14T23:26:57Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Step 1: &lt;/span&gt;  Typo fixed&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 23:26, 14 April 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l57&quot; &gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So this instruction works on the player's and the combatants' health, probably shared by all actor objects in the game. So I think that the actor class will hold some kind of &amp;quot;Decrease Health&amp;quot; function that the player inherits.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So this instruction works on the player's and the combatants' health, probably shared by all actor objects in the game. So I think that the actor class will hold some kind of &amp;quot;Decrease Health&amp;quot; function that the player inherits.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the game or engine is written, actors and players &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mite &lt;/del&gt;be written like this.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the game or engine is written, actors and players &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;might &lt;/ins&gt;be written like this.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- &amp;lt;pre&amp;gt;//// Actor, base for all actors&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- &amp;lt;pre&amp;gt;//// Actor, base for all actors&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class Actor(object){&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class Actor(object){&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot; &gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now there are different ways of handling shared instructions, we could look at the structures to find a unique identifier. But since we have a good base address for the player we can just check against that to determine if the actor is the player, no need for guess work here.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now there are different ways of handling shared instructions, we could look at the structures to find a unique identifier. But since we have a good base address for the player we can just check against that to determine if the actor is the player, no need for guess work here.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Step 2 ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Step 2 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Exterminator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=4844&amp;oldid=prev</id>
		<title>TheyCallMeTim13 at 18:37, 31 December 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=4844&amp;oldid=prev"/>
		<updated>2017-12-31T18:37:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:37, 31 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And if you have &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fallowed &lt;/del&gt;along &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;you already have the health address so lets just start with hook.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And if you have &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;followed &lt;/ins&gt;along &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;then &lt;/ins&gt;you already have the health address so lets just start with &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;hook.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Else you will need to complete these sections first:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Else you will need to complete these sections first:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot; &gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And it looks like we found the player's death check.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And it looks like we found the player's death check&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. But these may just be checks the compiler or engine put in place to stop arithmetic problems&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;cmp dword ptr [ecx+00000344],00&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;cmp dword ptr [ecx+00000344],00&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;cmp dword ptr [ebx+00000344],00&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;cmp dword ptr [ebx+00000344],00&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l133&quot; &gt;Line 133:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 133:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: The &amp;quot;Coord. Hook&amp;quot; must be enabled to have access to the &amp;quot;ptrCoordBase&amp;quot; symbol, if not enabled then this script will fail on syntax check and on injection.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: The &amp;quot;Coord. Hook&amp;quot; must be enabled to have access to the &amp;quot;ptrCoordBase&amp;quot; symbol, if not enabled then this script will fail on syntax check and on injection.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Tip&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;We &lt;/del&gt;will set the &amp;quot;Coord. Hook&amp;quot; as a primary script with the other script(s) as it's child record(s), or in the table Lua script, to be run first.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Note&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Later I &lt;/ins&gt;will set the &amp;quot;Coord. Hook&amp;quot; as a primary script with the other script(s) as it's child record(s), or in the table Lua script, to be run first.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Tutorials.Dishonored.HealthHack.06.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Tutorials.Dishonored.HealthHack.06.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l141&quot; &gt;Line 141:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 141:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Step 3 ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Step 3 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;But if we look back at the debugger form we see that &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;2 instructions&lt;/del&gt;, constantly &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;write &lt;/del&gt;to the player health &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;my &lt;/del&gt;bet is that &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;one of these is checking &lt;/del&gt;to see if we are over the maximum health and sets it to the maximum if over.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;But if we look back at the debugger form we see that &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1 instruction is constantly checking the player health&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and another is &lt;/ins&gt;constantly &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;writing &lt;/ins&gt;to the player health&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. My &lt;/ins&gt;bet is that &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;some where in there it checks &lt;/ins&gt;to see if we are over the maximum health and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the the other &lt;/ins&gt;sets it to the maximum if over.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Tutorials.Dishonored.HealthHack.07.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Tutorials.Dishonored.HealthHack.07.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l151&quot; &gt;Line 151:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 151:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And here I am betting that the &amp;quot;+348&amp;quot; is our health max which is just 4 bytes down from our health (this is so common that I always check around the value's address for it's maximum, but this was my &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;thinking &lt;/del&gt;when first learning) so let's add that to the table. If it looks good then let's add it to the script, so if the health maximum goes up the script will still fill it.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And here I am betting that the &amp;quot;+348&amp;quot; is our health max which is just 4 bytes down from our health (this is so common that I always check around the value's address for it's maximum, but this was my &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;process &lt;/ins&gt;when first learning) so let's add that to the table. If it looks good then let's add it to the script, so if the health maximum goes up the script will still fill it.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now some people will just cram a large value in the address, but I have even seen this done on a 2 byte address with a 3 byte number being used, so there was [https://en.wikipedia.org/wiki/Integer_overflow numeric overflow] that would corrupt the game saves (and that's no good, plus if it overflows to say the health maximum then that would get set very low and that is the opposite of what I am looking for).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now some people will just cram a large value in the address, but I have even seen this done on a 2 byte address with a 3 byte number being used, so there was [https://en.wikipedia.org/wiki/Integer_overflow numeric overflow] that would corrupt the game saves (and that's no good, plus if it overflows to say the health maximum then that would get set very low and that is the opposite of what I am looking for&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, at least with this hack&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So let's work on that script again.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So let's work on that script again.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l163&quot; &gt;Line 163:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 163:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And let's test the script (remember to save your tables before injections just in case, even saving be for AOB scans is a good idea to me).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;And let's test the script (remember to save your tables before injections just in case, even saving be for AOB scans is a good idea to me).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;But mine didn't work and if you just copied mine then I bet yours didn't work too.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Debugging your script ====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Debugging your script ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;But mine didn't work and if you just copied mine then I bet yours didn't work too.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now I found my type-o but lets debug our script to find the problem. So lets look at that instruction when injecting to see that it is, in fact, injecting to the right spot.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now I found my type-o but lets debug our script to find the problem. So lets look at that instruction when injecting to see that it is, in fact, injecting to the right spot.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l210&quot; &gt;Line 210:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 210:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now having &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;read and &lt;/del&gt;written to an unknown addresses I will be closing the game to keep from screwing up the game or hack testing (I will close it with task manager or the form close button if in windowed mode, knowing that it doesn't save then, to insure nothing gets saved). And because Cheat Engine can't account for my mistakes, I will also be restarting Cheat Engine to make sure I didn't mess it up too.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;having written to an unknown &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;address or &lt;/ins&gt;addresses&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;I will be closing the game to keep from screwing up the game or hack testing (I will close it with task manager or the form close button if in windowed mode, knowing that it doesn't save then, to insure nothing gets saved). And because Cheat Engine can't account for my mistakes, I will also be restarting Cheat Engine to make sure I didn't mess it up too.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=4809&amp;oldid=prev</id>
		<title>TheyCallMeTim13: Created page with '&lt;!-- Syntax Highlighter:     url:    http://pinetools.com/syntax-highlighter     Lang:   x86asm     Lang:   cpp     Theme:  Monokai Sublime --&gt; Category:Tutorial &lt;!-- Tutoria…'</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Create_cheat_table_full:health_hack&amp;diff=4809&amp;oldid=prev"/>
		<updated>2017-12-30T20:52:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;!-- Syntax Highlighter:     url:    http://pinetools.com/syntax-highlighter     Lang:   x86asm     Lang:   cpp     Theme:  Monokai Sublime --&amp;gt; &lt;a href=&quot;/index.php?title=Category:Tutorial&quot; title=&quot;Category:Tutorial&quot;&gt;Category:Tutorial&lt;/a&gt; &amp;lt;!-- Tutoria…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--&lt;br /&gt;
Syntax Highlighter:&lt;br /&gt;
    url:    http://pinetools.com/syntax-highlighter&lt;br /&gt;
    Lang:   x86asm&lt;br /&gt;
    Lang:   cpp&lt;br /&gt;
    Theme:  Monokai Sublime&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
&amp;lt;!-- Tutorials:Create_cheat_table_full:health_hack --&amp;gt;&lt;br /&gt;
{{DISPLAYTITLE:Creating a cheat table - Health Hack}}&lt;br /&gt;
This page is a sub page of: [[Tutorials:Create_cheat_table_full|Creating a cheat table - Full guide]]&lt;br /&gt;
&lt;br /&gt;
Now after a restart, this is what my table looks like.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.01.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And if you have fallowed along the you already have the health address so lets just start with hook.&lt;br /&gt;
&lt;br /&gt;
* Else you will need to complete these sections first:&lt;br /&gt;
** [[Tutorials:Create_cheat_table_full:coordinates|Finding the player coordinates]]&lt;br /&gt;
** [[Tutorials:Create_cheat_table_full:Finding_player_base|Finding the Player base]]&lt;br /&gt;
** [[Tutorials:Create_cheat_table_full:health|Finding the player health]]&lt;br /&gt;
* And the super speed and super jump hacks include stuff that I will not be going over, and are required information.&lt;br /&gt;
** [[Tutorials:Create_cheat_table_full:movement_speed|Write a Super Speed hack]]&lt;br /&gt;
** [[Tutorials:Create_cheat_table_full:jump_height|Write a Super Jump hack]]&lt;br /&gt;
&lt;br /&gt;
But all we really need is the health address to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
With the health address in the address list let's check to see what accesses the address, in both normal conditions and when in combat.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.02.png|border]]&lt;br /&gt;
&lt;br /&gt;
So here is what I found, the green is normal conditions, purple is when the player hits a combatant, and red is the player being hit by a combatant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And it looks like we found the player's death check.&lt;br /&gt;
&amp;lt;pre&amp;gt;cmp dword ptr [ecx+00000344],00&lt;br /&gt;
cmp dword ptr [ebx+00000344],00&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Top is when hitting a combatant, and the bottom is when being hit:&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.03.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let's start with the player hit death check (bottom death check), select the instruction and click the ''Show disassembler'' button. And in the memory view form right click the instruction line and select ''Find out what addresses this instruction accesses''.&lt;br /&gt;
&lt;br /&gt;
And here is what I found.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.04.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So this instruction works on the player's and the combatants' health, probably shared by all actor objects in the game. So I think that the actor class will hold some kind of &amp;quot;Decrease Health&amp;quot; function that the player inherits.&lt;br /&gt;
&lt;br /&gt;
When the game or engine is written, actors and players mite be written like this.&lt;br /&gt;
&amp;lt;!-- &amp;lt;pre&amp;gt;//// Actor, base for all actors&lt;br /&gt;
class Actor(object){&lt;br /&gt;
    string Name = 'Actor';&lt;br /&gt;
    ...&lt;br /&gt;
    int Health = 70;&lt;br /&gt;
    ...&lt;br /&gt;
    function decreaseHealth(self, amount) {&lt;br /&gt;
        ...&lt;br /&gt;
        if (self.Health == 0) {&lt;br /&gt;
            self.Die()&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
//// Player&lt;br /&gt;
class Player(Actor){ //// Player inherits form Actor&lt;br /&gt;
    string Name = 'Player';&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.15em;white-space:pre;font-family:'Lucida Console';display:block;overflow-x:auto;padding:0.5em;background:rgb(35, 36, 31);color:rgb(248, 248, 242);&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;//// Actor, base for all actors&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:rgb(166, 226, 46);&amp;quot;&amp;gt;Actor&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:rgb(248, 248, 242);&amp;quot;&amp;gt;(object)&amp;lt;/span&amp;gt;{&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt; Name = &amp;lt;span style=&amp;quot;color:rgb(230, 219, 116);&amp;quot;&amp;gt;'Actor'&amp;lt;/span&amp;gt;;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;int&amp;lt;/span&amp;gt; Health = &amp;lt;span style=&amp;quot;color:rgb(174, 129, 255);&amp;quot;&amp;gt;70&amp;lt;/span&amp;gt;;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;function &amp;lt;span style=&amp;quot;color: rgb(166, 226, 46);&amp;quot;&amp;gt;decreaseHealth&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(248, 248, 242);&amp;quot;&amp;gt;(self, amount)&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;{&lt;br /&gt;
        &amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;span style=&amp;quot;color: rgb(249, 38, 114);&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; (self.Health == &amp;lt;span style=&amp;quot;color: rgb(174, 129, 255);&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;) {&lt;br /&gt;
            self.Die()&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;//// Player&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:rgb(166, 226, 46);&amp;quot;&amp;gt;Player&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:rgb(248, 248, 242);&amp;quot;&amp;gt;(Actor)&amp;lt;/span&amp;gt;{ &amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;//// Player inherits form Actor&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(249, 38, 114);&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt; Name = &amp;lt;span style=&amp;quot;color:rgb(230, 219, 116);&amp;quot;&amp;gt;'Player'&amp;lt;/span&amp;gt;;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:rgb(117, 113, 94);&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now there are different ways of handling shared instructions, we could look at the structures to find a unique identifier. But since we have a good base address for the player we can just check against that to determine if the actor is the player, no need for guess work here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
So lets get a base script up, and then work from there.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.05.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So if the base address was a multi-level pointer then to check it we would need some thing like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
n_code:&lt;br /&gt;
    push esi&lt;br /&gt;
    mov esi,[ptrCoordBase]&lt;br /&gt;
    test exi,esi&lt;br /&gt;
    jz @f  // jump forward to the next label (@b is jmp back).&lt;br /&gt;
        mov esi,[esi+{the base offset}]&lt;br /&gt;
        test esi,esi&lt;br /&gt;
        jz @f&lt;br /&gt;
            cmp esi,ebx&lt;br /&gt;
            jne @f&lt;br /&gt;
                mov [ebx+{health offset}],(int)100&lt;br /&gt;
    @@:&lt;br /&gt;
    pop esi&lt;br /&gt;
o_code:&lt;br /&gt;
    cmp dword ptr [ebx+00000344],00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But our base address is at the same level as the health address, so this is all we need.&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;quot;Coord. Hook&amp;quot; must be enabled to have access to the &amp;quot;ptrCoordBase&amp;quot; symbol, if not enabled then this script will fail on syntax check and on injection.&lt;br /&gt;
&lt;br /&gt;
Tip: We will set the &amp;quot;Coord. Hook&amp;quot; as a primary script with the other script(s) as it's child record(s), or in the table Lua script, to be run first.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.06.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
But if we look back at the debugger form we see that 2 instructions, constantly write to the player health my bet is that one of these is checking to see if we are over the maximum health and sets it to the maximum if over.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.07.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let's look for our health maximum, in the memory view form.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.08.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here I am betting that the &amp;quot;+348&amp;quot; is our health max which is just 4 bytes down from our health (this is so common that I always check around the value's address for it's maximum, but this was my thinking when first learning) so let's add that to the table. If it looks good then let's add it to the script, so if the health maximum goes up the script will still fill it. &lt;br /&gt;
Now some people will just cram a large value in the address, but I have even seen this done on a 2 byte address with a 3 byte number being used, so there was [https://en.wikipedia.org/wiki/Integer_overflow numeric overflow] that would corrupt the game saves (and that's no good, plus if it overflows to say the health maximum then that would get set very low and that is the opposite of what I am looking for).&lt;br /&gt;
&lt;br /&gt;
So let's work on that script again.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.09.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
&lt;br /&gt;
And let's test the script (remember to save your tables before injections just in case, even saving be for AOB scans is a good idea to me).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Debugging your script ====&lt;br /&gt;
&lt;br /&gt;
But mine didn't work and if you just copied mine then I bet yours didn't work too.&lt;br /&gt;
&lt;br /&gt;
Now I found my type-o but lets debug our script to find the problem. So lets look at that instruction when injecting to see that it is, in fact, injecting to the right spot.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.10.png|border]]&lt;br /&gt;
&lt;br /&gt;
Now re-enable the script while looking at the memory view form.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.11.png|border]]&lt;br /&gt;
&lt;br /&gt;
Then let's follow that to our assembled memory for the health hack. So right click the instruction line and select ''Follow''.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.12.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then on the first line &amp;quot;cmp [ptrCoordBase],ebx&amp;quot; let's see what's going on, so right click and select ''Find out what addresses this instruction accesses'', and go back to the game and get hit again to test. &lt;br /&gt;
&lt;br /&gt;
Now since we are looking at a base address let's view it in hexadecimal format, so right click the debugger form and select ''Show as hexadecimal''.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.13.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let's check the registry so in the debugger form right click the address and select ''Show register states''.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.14.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.15.png|border]]&lt;br /&gt;
&lt;br /&gt;
So I first check '''EDX''' and see that the address is wrong, but I see that '''EBX''' is the right address and then see that I used the wrong registry, so lets disable the script and then make the correction.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
n_code:&lt;br /&gt;
    cmp [ptrCoordBase],ebx  // here I typed the right one&lt;br /&gt;
    jne @f&lt;br /&gt;
        push eax&lt;br /&gt;
        mov eax,[edx+348]  // wrong one used here&lt;br /&gt;
        mov [edx+344],eax  // wrong one used here again&lt;br /&gt;
        pop eax&lt;br /&gt;
o_code:&lt;br /&gt;
    cmp dword ptr [ebx+00000344],00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now having read and written to an unknown addresses I will be closing the game to keep from screwing up the game or hack testing (I will close it with task manager or the form close button if in windowed mode, knowing that it doesn't save then, to insure nothing gets saved). And because Cheat Engine can't account for my mistakes, I will also be restarting Cheat Engine to make sure I didn't mess it up too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So let's restart (the game and Cheat Engine) and correct the script re-inject and retest the script.&lt;br /&gt;
&lt;br /&gt;
So here is my corrected script.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.16.png|border]]&lt;br /&gt;
&lt;br /&gt;
So let's retest that script, don't just test to see if you have infinite health also test if the combatants can still be killed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So I will kill a combatant (try both standard sword kill and an animated stealth kill) and then stand in the middle of a group for a minute to see how this works out.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.17.png|border]]&lt;br /&gt;
&lt;br /&gt;
And I now have a working health hack.&lt;br /&gt;
&lt;br /&gt;
This was after about 20 hits, now we could look for a better spot so our meter stays filled, but I am fine with it so moving on.&lt;br /&gt;
&lt;br /&gt;
Tip: The best place to insure that the display value and the real value match is in a write instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== One hit kills  ==&lt;br /&gt;
&lt;br /&gt;
And sense this instruction handles all actors health let's just set this up as a primary script with 2 flags one for the player and the second for the combatants.&lt;br /&gt;
&lt;br /&gt;
So here is the new script.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.18.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now add the flags to the address list right click the player health flag and select ''Set/Change dropdown selection options''.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.19.png|border]]&lt;br /&gt;
&lt;br /&gt;
And set it like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.20.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then right click the combatant health flag and select ''Set/Change dropdown selection options''.&lt;br /&gt;
&lt;br /&gt;
And set it like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.21.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We could also add a toggle script for the flags:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ ENABLE ------------------------------&lt;br /&gt;
[ENABLE]&lt;br /&gt;
flgPlayerHealthHook:&lt;br /&gt;
    db 01&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ DISABLE ------------------------------&lt;br /&gt;
[DISABLE]&lt;br /&gt;
flgPlayerHealthHook:&lt;br /&gt;
    db 00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ ENABLE ------------------------------&lt;br /&gt;
[ENABLE]&lt;br /&gt;
flgCombatantHealthHook:&lt;br /&gt;
    db 01&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ DISABLE ------------------------------&lt;br /&gt;
[DISABLE]&lt;br /&gt;
flgCombatantHealthHook:&lt;br /&gt;
    db 00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now time to test. So let's inject the new script, and set a flag to test it out.&lt;br /&gt;
&lt;br /&gt;
Let's test the infinite health first, then one hit kills, then disable infinite health with one hit kills enabled to make sure we are not subject to one hit kills.&lt;br /&gt;
&lt;br /&gt;
So It looks like the infinite health works but one hit kills is not working, so let's have look at the other death check instruction.&lt;br /&gt;
&lt;br /&gt;
But in checking what addresses that instruction accesses I find only the player's health, so what we want is instruction that writes to actor health, this is where I had to just try different ones until I found the right area, test what addresses the instruction accesses to find a write that has all health run thought it.&lt;br /&gt;
&lt;br /&gt;
This is the one hit kills script that ended up working.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.22.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And this is the cleaned up infinite health script.&lt;br /&gt;
&lt;br /&gt;
[[File:Tutorials.Dishonored.HealthHack.23.png|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So I will be doing a little more testing (the best kind of testing), to insure it is working be for moving one. I also like to test going though load screens to insure no crashes for new scripts that write values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, with every thing working, on to the next hack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tutorials:Create_cheat_table_full:links}}&lt;/div&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
</feed>