<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://te4.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=QuiietLoathiing</id>
		<title>Tales of Maj'Eyal - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://te4.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=QuiietLoathiing"/>
		<link rel="alternate" type="text/html" href="https://te4.org/wiki/Special:Contributions/QuiietLoathiing"/>
		<updated>2026-04-04T21:53:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://te4.org/w/index.php?title=Difficulty&amp;diff=14658</id>
		<title>Difficulty</title>
		<link rel="alternate" type="text/html" href="https://te4.org/w/index.php?title=Difficulty&amp;diff=14658"/>
				<updated>2018-03-17T14:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;QuiietLoathiing: /* Madness */  Hey let's not use mental illness or crazy as a bad thing yeah? We're people too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The game has 5 difficulty settings:&lt;br /&gt;
&lt;br /&gt;
=Easier=&lt;br /&gt;
&lt;br /&gt;
Provides an easier game experience.&lt;br /&gt;
Use it if you feel uneasy tackling the harder modes.&lt;br /&gt;
&lt;br /&gt;
*All damage to the player decreased by 30%&lt;br /&gt;
*All healing for the player increased by 30%&lt;br /&gt;
*All detrimental status effects durations reduced by 50%&lt;br /&gt;
*Player starts at level 1 with 15 [[gold]]&lt;br /&gt;
&lt;br /&gt;
[[Achievement|Achievements]] are not granted, and thus any unlock dependent on an achievement cannot be obtained. Specific unlocks affected are mentioned on the [[unlockables]] page.&lt;br /&gt;
&lt;br /&gt;
=Normal=&lt;br /&gt;
&lt;br /&gt;
Provides the normal level of challenges.&lt;br /&gt;
&lt;br /&gt;
*Player starts at level 1 with 15 gold&lt;br /&gt;
&lt;br /&gt;
=Nightmare=&lt;br /&gt;
&lt;br /&gt;
Unfair game setting&lt;br /&gt;
*All zone levels increased by 50%&lt;br /&gt;
*All creature talent levels increased by 30%&lt;br /&gt;
*Player starts at level 1 with 100 gold&lt;br /&gt;
*Rare creatures are slightly more frequent&lt;br /&gt;
Player can earn Nightmare version of achievements if also playing in Roguelike or Adventure [[Permadeath|permadeath]] mode.&lt;br /&gt;
&lt;br /&gt;
=Insane=&lt;br /&gt;
&lt;br /&gt;
Similar rules to Nightmare, but with more random bosses!&lt;br /&gt;
&lt;br /&gt;
*All zone levels increased by 50% + 1&lt;br /&gt;
*All creature talent levels increased by 50%&lt;br /&gt;
*Rare creatures are far more frequent and random bosses start to appear&lt;br /&gt;
*Nonrandom bosses will have randomly selected talents&lt;br /&gt;
*All enemies have 20% more life&lt;br /&gt;
*Player starts at level 2 with 250 gold&lt;br /&gt;
&lt;br /&gt;
Player can earn Insane version of achievements if also playing in Roguelike or Adventure permadeath mode.&lt;br /&gt;
&lt;br /&gt;
=Madness=&lt;br /&gt;
&lt;br /&gt;
Absolutely unfair game setting.&lt;br /&gt;
You really like pain and want to feel the wrath of DarkGod to play this mode!&lt;br /&gt;
&lt;br /&gt;
*All zone levels increased by 150% + 1&lt;br /&gt;
*All creature talent levels increased by 170%&lt;br /&gt;
*Rare creatures are far more frequent and random bosses start to appear.&lt;br /&gt;
*Bosses will have randomly selected talents&lt;br /&gt;
*Player is being hunted!&lt;br /&gt;
*Randomly all foes in a radius will get a feeling of where she/he is.&lt;br /&gt;
&lt;br /&gt;
Player can earn Madness version of achievements if also playing in Roguelike or Adventure permadeath mode.&lt;/div&gt;</summary>
		<author><name>QuiietLoathiing</name></author>	</entry>

	<entry>
		<id>https://te4.org/w/index.php?title=Addons&amp;diff=6760</id>
		<title>Addons</title>
		<link rel="alternate" type="text/html" href="https://te4.org/w/index.php?title=Addons&amp;diff=6760"/>
				<updated>2014-02-26T13:41:11Z</updated>
		
		<summary type="html">&lt;p&gt;QuiietLoathiing: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]][[Category:Addons]]&lt;br /&gt;
Addons are way for third parties to modify existing modules inside t-engine. Since the game Tales of Maj'Eyal is a t-engine module, this is how you write addons for ToME, just like the ones in the Steam Workshop.&lt;br /&gt;
&lt;br /&gt;
==Intro==&lt;br /&gt;
&lt;br /&gt;
You're making an addon. The addon is named &amp;quot;coolstuff&amp;quot;. The first thing you do is make a directory &amp;quot;tome-coolstuff&amp;quot; inside your Steam install of ToME. On my mac, that path is:&lt;br /&gt;
 ~/Library/Application Support/Steam/SteamApps/common/TalesMajEyal/game/addons/&lt;br /&gt;
&lt;br /&gt;
And on Windows, it's usually something like&lt;br /&gt;
 C:\Program Files (x86)\Steam\SteamApps\common\TalesMajEyal\game\addons&lt;br /&gt;
&lt;br /&gt;
On Linux, the path is&lt;br /&gt;
 ~/.steam/steam/SteamApps/common/TalesMajEyal/game/addons&lt;br /&gt;
&lt;br /&gt;
Your addons directory should have these files in it already:&lt;br /&gt;
 tome-addon-dev.teaa&lt;br /&gt;
 tome-items-vault.teaa&lt;br /&gt;
 tome-stone-wardens.teaa&lt;br /&gt;
&lt;br /&gt;
If you can't find the directory, search for one of those file names.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Getting Started===&lt;br /&gt;
&lt;br /&gt;
Every addon has an &amp;lt;nowiki&amp;gt;init.lua&amp;lt;/nowiki&amp;gt; file. The &amp;lt;nowiki&amp;gt;init.lua&amp;lt;/nowiki&amp;gt; file looks like this:&lt;br /&gt;
&lt;br /&gt;
 -- My Cool Addon&lt;br /&gt;
 -- tome-coolstuff/init.lua&lt;br /&gt;
 &lt;br /&gt;
 long_name = &amp;quot;My Awesome Addon&amp;quot;&lt;br /&gt;
 short_name = &amp;quot;coolstuff&amp;quot;&lt;br /&gt;
 for_module = &amp;quot;tome&amp;quot;&lt;br /&gt;
 version = { 1, 1, 6 }&lt;br /&gt;
 weight = 100&lt;br /&gt;
 author = { 'coolguy@invalid.com' }&lt;br /&gt;
 homepage = 'iamsocool.geocities.com'&lt;br /&gt;
 description = [[Oh my god this stuff is so totally cool.&lt;br /&gt;
 Holy crap I mean it's really super cool, like, wow.&lt;br /&gt;
 ]] -- the [[ ]] things are like quote marks that can span multiple lines&lt;br /&gt;
 tags = {'cool', &amp;quot;stuff&amp;quot;, 'cool stuff'} -- tags MUST immediately follow description&lt;br /&gt;
 &lt;br /&gt;
 hooks = true&lt;br /&gt;
 overload = true&lt;br /&gt;
 superload = false&lt;br /&gt;
 data = true&lt;br /&gt;
&lt;br /&gt;
Those last four are super important, because they determine what directories in your addon ToME will look at.&lt;br /&gt;
&lt;br /&gt;
===Directory Structure===&lt;br /&gt;
&lt;br /&gt;
* '''overload''': Files in this directory will automatically replace files in the base game. This is very powerful but also incredibly dangerous. (Of course, replacing things like icons is less dangerous than replacing code.)&lt;br /&gt;
* '''superload''': Files in this directory will be read and executed after the base game's file of the same name. This is very powerful but much less dangerous. This is a great way to add content (like new Artifact items) or tweak content (modify a talent's cost or requirements) without accidentally stepping on other tweaks or future content updates.&lt;br /&gt;
* '''data''': Files in this directory will just sit there and be ignored unless you explicitly tell the game to read them. Files in this area live in their own &amp;quot;namespace&amp;quot; and filenames here will never interfere with other addons or the base game. This is a great place to put new classes, talent trees, or races.&lt;br /&gt;
* '''hooks''': Only one file in this directory is automatically executed: &amp;lt;nowiki&amp;gt;load.lua&amp;lt;/nowiki&amp;gt;. This file is a great way to get your &amp;quot;data&amp;quot; files executed at the proper time. It's also a way to augment some parts of the game which specifically support hooks: the Example module shows how the &amp;quot;Actor:takeHit&amp;quot; function is hooked to make the tourist take no damage.  You can also use hooks to load add-on data in to the module, eg. new talents. Find a list of available hooks [[hooks|here]].&lt;br /&gt;
&lt;br /&gt;
The Example addon can be found here: http://te4.org/dl/tmp/tome-example.teaa&lt;br /&gt;
&lt;br /&gt;
A .teaa file is simply a renamed zip that contains the whole addon, so feel free to rename and unzip your favorite addon to see a living example of all the stuff discussed in this article. The &amp;lt;nowiki&amp;gt;tome-example.teaa&amp;lt;/nowiki&amp;gt; addon illustrates how to add a new class, new talents, new timed effects and how to hook onto a few useful locations in the code. (Note that it's a bit old, though.)&lt;br /&gt;
&lt;br /&gt;
== Grammar and Syntax ==&lt;br /&gt;
* The addon folder must be in the format &amp;lt;nowiki&amp;gt;[ModuleName]-[AddonName]&amp;lt;/nowiki&amp;gt;. For you, that means &amp;lt;nowiki&amp;gt;tome-coolstuff&amp;lt;/nowiki&amp;gt; is your folder name.&lt;br /&gt;
* The short_name in init.lua must match the &amp;lt;nowiki&amp;gt;[AddonName]&amp;lt;/nowiki&amp;gt;. For you, that means &amp;lt;nowiki&amp;gt;coolstuff&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Overloading===&lt;br /&gt;
Each &amp;lt;nowiki&amp;gt;.teaa&amp;lt;/nowiki&amp;gt; file is just a zip file. The main ToME game code is stored in &amp;lt;nowiki&amp;gt;game/modules/tome.team&amp;lt;/nowiki&amp;gt;, and it is also just a renamed zip file.&lt;br /&gt;
&lt;br /&gt;
Copy &amp;lt;nowiki&amp;gt;tome.team&amp;lt;/nowiki&amp;gt; somewhere, rename it to &amp;lt;nowiki&amp;gt;tome-1.1.5.zip&amp;lt;/nowiki&amp;gt; and unzip it.&lt;br /&gt;
&lt;br /&gt;
You'll see two directories: &amp;quot;data&amp;quot; and &amp;quot;mod&amp;quot;. Most of the stuff you'll want to mess with at first is in &amp;quot;data&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When you use overload to replace a file, the path and name must match exactly the structure in &amp;lt;nowiki&amp;gt;tome.team&amp;lt;/nowiki&amp;gt;. So for example, to replace the types of leather boots in the game, I'd look in the unzipped ToME code and find:&lt;br /&gt;
 tome-1.1.5/data/general/objects/leather-boots.lua&lt;br /&gt;
... and so to overload that, I'd create a file in my addon:&lt;br /&gt;
 tome-coolstuff/overload/data/general/objects/leather-boots.lua&lt;br /&gt;
&lt;br /&gt;
===Superloading===&lt;br /&gt;
&lt;br /&gt;
Just like overloading, superloading requires that you know the file structure of the game so you can make your files get read and executed at the right time. When the game reads in your superload file, you can get access to the previous file's contents using the &amp;lt;nowiki&amp;gt;loadPrevious(...)&amp;lt;/nowiki&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
For example, if we wanted to add a new boot ego, we could do something like this. First, we'd find the boot ego code:&lt;br /&gt;
 data/general/objects/egos/light-boots.lua&lt;br /&gt;
&lt;br /&gt;
Next, we'd make a file in our &amp;lt;nowiki&amp;gt;superload&amp;lt;/nowiki&amp;gt; directory:&lt;br /&gt;
 tome-coolstuff/superload/data/general/objects/egos/light-boots.lua&lt;br /&gt;
&lt;br /&gt;
... and we'd make sure that our &amp;lt;nowiki&amp;gt;init.lua&amp;lt;/nowiki&amp;gt; file had the line:&lt;br /&gt;
 superload = true&lt;br /&gt;
&lt;br /&gt;
We're ready to add the boot ego!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 local _M = loadPrevious(...)&lt;br /&gt;
 &lt;br /&gt;
 newEntity{&lt;br /&gt;
 	power_source = {arcane=true},&lt;br /&gt;
 	name = &amp;quot; of sensing&amp;quot;, suffix=true, instant_resolve=true,&lt;br /&gt;
 	keywords = {sensing=true},&lt;br /&gt;
 	level_range = {1, 50},&lt;br /&gt;
 	rarity = 4,&lt;br /&gt;
 	cost = 2,&lt;br /&gt;
 	wielder = {&lt;br /&gt;
 		see_invisible = resolvers.mbonus_material(20, 5),&lt;br /&gt;
 		see_stealth = resolvers.mbonus_material(20, 5),&lt;br /&gt;
 		blind_immune = resolvers.mbonus_material(30, 20, function(e, v) v=v/100 return 0, v end),&lt;br /&gt;
 	},&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 return _M&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Modifying Existing Stuff====&lt;br /&gt;
&lt;br /&gt;
Notice how we created that _M variable above and then didn't do anything with it. That's because we were only creating new content, rather than tweaking existing content. The _M variable is where the existing content lives. Let's modify an existing talent in another superload file, let's modify the cost of the Arcane spell Arcane Power:&lt;br /&gt;
 tome-coolstuff/superload/data/talents/spells/arcane.lua&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 local _M = loadPrevious(...)&lt;br /&gt;
 &lt;br /&gt;
 Talents.talents_def.T_ARCANE_POWER.sustain_mana = 20&lt;br /&gt;
 &lt;br /&gt;
 return _M&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Modifying mod Stuff====&lt;br /&gt;
&lt;br /&gt;
Hold on, that example still didn't use _M at all! So what is _M for? Since most things in the &amp;lt;nowiki&amp;gt;data&amp;lt;/nowiki&amp;gt; directory are stored in easily accessible structures, you don't need _M to get them. _M is generally used for stuff in the &amp;lt;nowiki&amp;gt;mod&amp;lt;/nowiki&amp;gt; directory: the most dangerous stuff to modify. Here's an example which modifies the &amp;quot;levelup&amp;quot; function in &amp;lt;nowiki&amp;gt;mod/Actor.lua&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 local _M = loadPrevious(...)&lt;br /&gt;
 local base_levelup = _M.levelup&lt;br /&gt;
 &lt;br /&gt;
 function _M:levelup()&lt;br /&gt;
   -- Do stuff &amp;quot;before&amp;quot; loading the original file&lt;br /&gt;
 &lt;br /&gt;
   -- execute the original function&lt;br /&gt;
   local retval = base_levelup(self)&lt;br /&gt;
 &lt;br /&gt;
   -- Do stuff &amp;quot;after&amp;quot; loading the original file&lt;br /&gt;
 &lt;br /&gt;
   -- return whatever the original function would have returned&lt;br /&gt;
   return retval&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 return _M&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uploading your Addon==&lt;br /&gt;
&lt;br /&gt;
You've been playing around with your addon, making changes and copying stuff from other popular addons. You've tested your stuff, and you're pretty satisfied that it won't crash the game. Good job! Now you want to share your work.&lt;br /&gt;
&lt;br /&gt;
* In days of yore, you needed to post in this thread to be granted addon upload powers by DarkGod: http://forums.te4.org/viewtopic.php?f=50&amp;amp;t=31374&lt;br /&gt;
** If you have any trouble uploading, make a post in that thread.&lt;br /&gt;
* Main Menu -&amp;gt; Options -&amp;gt; Developer Mode (bottom option)&lt;br /&gt;
* Start a new game.&lt;br /&gt;
** Note that being in Developer Mode puts an extra screen between &amp;quot;New Game&amp;quot; and building a character. Pick the top option (&amp;quot;ToME&amp;quot;).&lt;br /&gt;
* Hit ctrl+d and pick the bottom option (just hit the up arrow)&lt;br /&gt;
* MD5s are now calculated automatically. You will probably never need to get an MD5. Ignore that unless you know why you need one.&lt;br /&gt;
* You will only need to register your addon ONCE, so after you do that the first time, you can ignore that option too.&lt;br /&gt;
* If you've already registered your addon, pick &amp;quot;Publish Addon to te4.org&amp;quot;. This is the option you'll pick over and over as you create new versions.&lt;br /&gt;
* If you're using Steam, then after you upload to te4.org, hit ctrl+d again and this time pick &amp;quot;Publish Addon to Steam Workshop&amp;quot;&lt;/div&gt;</summary>
		<author><name>QuiietLoathiing</name></author>	</entry>

	</feed>