<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.hackslashmine.net/hsmwiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.hackslashmine.net/hsmwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=69.246.180.210</id>
		<title>Hack/Mine Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.hackslashmine.net/hsmwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=69.246.180.210"/>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Special:Contributions/69.246.180.210"/>
		<updated>2026-07-04T07:41:35Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Towers</id>
		<title>Towers</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Towers"/>
				<updated>2012-06-04T02:10:58Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* Easy Exp Farming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:2012-04-19_11.51.15.png|right|thumb|a tower]]&lt;br /&gt;
==Overview==&lt;br /&gt;
Towers are found throughout the world. Similar to dungeons there are different rooms with '''mob spawners'''. Each tower has a number of floors and the top room always has '''treasure''' in. Towers are found in multiple colours including blue, light blue, yellow, red and purple. Colours can also change depending on the different biomes that they are found in. Unlike the dungeons, towers are leveled depending on the level of the area you are in. As of patch 0.5, taller towers have been added to appear on occasion, with several more levels to conquer on your climb to the top, as well as better treasure once you reach the top room.&lt;br /&gt;
&lt;br /&gt;
[[File:JungleTower.png|thumb|Jungle Tower]]&lt;br /&gt;
&lt;br /&gt;
==The Rooms==&lt;br /&gt;
&lt;br /&gt;
There are multiple rooms in the towers. Each has a random spawner and a different design. There are sometimes lava/water blocks on the floors. If a tower has blocks on it half way up, like a generated block (not ones that have been placed) then thats where the door will be. just fyi&lt;br /&gt;
&lt;br /&gt;
The top floor always contains a red carpet to the end chest, making it a profitable and sometimes dangerous source of wool.&lt;br /&gt;
&lt;br /&gt;
[[File:2012-04-19_11.33.26.png|thumb|generic room]]&lt;br /&gt;
==Defeating Towers==&lt;br /&gt;
There are many ways to defeat these towers.&lt;br /&gt;
&lt;br /&gt;
[[File:2012-04-19_11.34.01.png|thumb|chest room]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Mage Rush: The mage rush requires the person to blink from room to the other side and climb the ladder all the way up to the top. This Is useful when fighting towers way beyond your level as this will allow you to get 10x's the items you have. But when this comes with the going down, it is rather hard as more mobs have spawned. You must carefully blink down the tower without getting swarmed by the evil monsters.&lt;br /&gt;
[[File:Warpedtower.png|thumb|An example of how a tower can &amp;quot;warp&amp;quot; when it spawns; notice the chest with white wool underneath of it instead of red.]]&lt;br /&gt;
The Midway Ladder: The midway ladder is where you rush to the midway of a ladder. As most mobs have very little range you can stay up there and shoot them with your wand/bow. After you manage to kill all of the mobs in that room you can rush back down and destroy the spawners. Then you can get on the ladder and stay half-way using your bow/wand, attempt to climb yourself up and down the ladder getting hits.(Using the Lighting Spell can be a very useful tool, but be warned that you can lose your items due to the lighting) Another Tip whilst doing this is to use the S key to climb up ladders. This is so you can face the mobs and easily go up and down.&lt;br /&gt;
&lt;br /&gt;
All Balls: All Balls is where you get a diamond pickaxe and rush like a mad dog destroying all the spawners you can. This is best Done with warrior or a mage as mages can blink to dodge any attacks and warriors are quick enough to not get killed.&lt;br /&gt;
&lt;br /&gt;
Fortress: Warriors or Rangers/Mages that are playing their class wrong can vastly increase their fortitude and simply walk in. They then use whatever weapon they want (I've done it even with my fist) to destroy mobs, then grab a pickaxe and stand on top of the spawners, using gust or whirlwind to keep mobs at bay while the spawner is destroyed.&lt;br /&gt;
&lt;br /&gt;
==Easy Exp Farming==&lt;br /&gt;
There Is a way for all classes to use their abilities to get massive levels in a quick time.&lt;br /&gt;
&lt;br /&gt;
All the mage/archer has to do is wait for a lot of mobs to spawn, then they can use their lighting abilities which can do a massive attack. The Warrior can spam their Whirlwind ability as well. Using this ability a few times will usually clear most mobs around your level.&lt;br /&gt;
&lt;br /&gt;
Doing this however does destroy any items that drop. Some of the items might have just been that better wand/bow/armor you needed.&lt;br /&gt;
&lt;br /&gt;
Another method for farming involves setting up a short barrier between a ladder, and multiple slime spawners. If one places half blocks in the right positions, it is possible to shoot charged bolt spells, arrows, or other projectiles through, dealing damage without destroying drops, or taking any hits.&lt;br /&gt;
&lt;br /&gt;
This method is quite difficult to set up, but is very rewarding, because it takes very little time to make many kills, and score tons of loot. Warriors can simply block off the mobs at a doorway and use whirlwind to attack them through the door.&lt;br /&gt;
&lt;br /&gt;
[[File:2012-05-01_20.49.46.png|thumb|this is a tower with a chunk of dirt in it&lt;br /&gt;
&lt;br /&gt;
the black hole is the door. ]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Warrior</id>
		<title>Warrior</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Warrior"/>
				<updated>2012-06-02T08:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Warrior Skill - Leap|thumb|300px|right|Warrior using leap skill]]&lt;br /&gt;
==Overview==&lt;br /&gt;
Your standard fighter class. Specializes in slashing enemies to bits and charging into hordes of mobs. Can also function as a tank.&lt;br /&gt;
&lt;br /&gt;
Warriors are yer standard melee class, see? Slashin' Nagas, chargin' at Slimes, and leapin' all over the place are all in a day's work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Abilities==&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;article-table article-table-selected&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Spell&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Mana&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Cooldown&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|Leap&lt;br /&gt;
|7&lt;br /&gt;
|1.5&lt;br /&gt;
|Causes your character to soar into the air for a good distance, causing a small bit of damage on landing. Useful for when you need to get out of a jam (Ouch, my kneecaps!)&lt;br /&gt;
|-&lt;br /&gt;
|Taunt&lt;br /&gt;
|5&lt;br /&gt;
|2.5&lt;br /&gt;
|Causes a monster to focus it's attacks on you. Not really of much use in single player, but once threat mechanics are in place, this will be essential for tank type builds in SMP. (Hey, fish-face! Come and get some!)&lt;br /&gt;
|-&lt;br /&gt;
|Leash&lt;br /&gt;
|5&lt;br /&gt;
|.75&lt;br /&gt;
|Pulls a monster toward you. Useful for those times the wizard doesn't feel like making it easy for you and standing still so you can run him through. (Get over here!)&lt;br /&gt;
|-&lt;br /&gt;
|Charge&lt;br /&gt;
|5&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Ahh, my sweet, sweet charge! Causes you to, well, charge forward. When you collide with a monster, it takes a good bit of damage and is sent flying back, as well as any of its buddies stupid enough to be nearby. Good for when you need to clear a path for your group, or just need to deal with a horde of mobs (For Narnia!)&lt;br /&gt;
|-&lt;br /&gt;
|Whirlwind&lt;br /&gt;
|8&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Great for yer close-qaurter adventures!&lt;br /&gt;
Turn yerself around doing damage to mobs next to you!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Warrior Skill - Leash|thumb|300px|right|Warrior using leash skill]][[File:Warrior Skill - Charge|thumb|300px|right|Warrior using charge]]&lt;br /&gt;
&lt;br /&gt;
==Ways to Build==&lt;br /&gt;
*Berserker - Prioritize getting the best weapons as you can, and go for as many Strength/Dexterity increases as possible. A tiny bit of Fortitude every now and then should be enough to keep you alive.&lt;br /&gt;
&lt;br /&gt;
*Guardian - Armor, armor, armor! If you like to be able to shrug off blow after blow (including the dreaded arrow to the knee!), then the Guardian is for you. Prioritize Fortitude! Maybe 4 or 5 points to fort every level, and the rest to either Dexterity or Strength. Weapons are your second priority.&lt;br /&gt;
*Battle tank - The balance of weapons and armor should keep any SMP party alive. Strength and Fortitude should be your main skill trees. Your job is to agro all the mosters and group them, a mage and a ranger can make quick work of a group. In SSP using your charge should kill most enemies.&lt;br /&gt;
**Paladin - A branch off of battle tank, prioritizing strength and fortitude, followed by wisdom. The goal of this build is being able to use your abilities at all times, by having loads of mana, and being able to take a hit, while still dishing out damage. Very useful when playing SSP&lt;br /&gt;
*Pure Berserker - Strength, strength, and more strength. This build gives the highest possible damage output for each level, but with low ciritcal hit chance. Only raise Strength with points, and rely on armour and weaponry for buffs to other stats.&lt;br /&gt;
&lt;br /&gt;
More to come!&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
Focus on getting a large fortitude and strength. Unlike other classes you only need stuff that has to do with you in particular. The ranger and mage should both get some strength power so they can fight if caught in close combat but a warrior should just focus on fortitude, strength and low amounts of dexterity.&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Warrior</id>
		<title>Warrior</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Warrior"/>
				<updated>2012-06-02T08:17:04Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Warrior Skill - Leap|thumb|300px|right|Warrior using leap skill]]&lt;br /&gt;
==Overview==&lt;br /&gt;
Your standard fighter-y class. Specializes in slashing enemies to bits and charging into hordes of mobs. Can also function as a tank.&lt;br /&gt;
&lt;br /&gt;
Warriors are yer standard melee class, see? Slashin' Nagas, chargin' at Slimes, and leapin' all over the place are all in a day's work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Abilities==&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;article-table article-table-selected&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Spell&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Mana&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Cooldown&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|Leap&lt;br /&gt;
|7&lt;br /&gt;
|1.5&lt;br /&gt;
|Causes your character to soar into the air for a good distance, causing a small bit of damage on landing. Useful for when you need to get out of a jam (Ouch, my kneecaps!)&lt;br /&gt;
|-&lt;br /&gt;
|Taunt&lt;br /&gt;
|5&lt;br /&gt;
|2.5&lt;br /&gt;
|Causes a monster to focus it's attacks on you. Not really of much use in single player, but once threat mechanics are in place, this will be essential for tank type builds in SMP. (Hey, fish-face! Come and get some!)&lt;br /&gt;
|-&lt;br /&gt;
|Leash&lt;br /&gt;
|5&lt;br /&gt;
|.75&lt;br /&gt;
|Pulls a monster toward you. Useful for those times the wizard doesn't feel like making it easy for you and standing still so you can run him through. (Get over here!)&lt;br /&gt;
|-&lt;br /&gt;
|Charge&lt;br /&gt;
|5&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Ahh, my sweet, sweet charge! Causes you to, well, charge forward. When you collide with a monster, it takes a good bit of damage and is sent flying back, as well as any of its buddies stupid enough to be nearby. Good for when you need to clear a path for your group, or just need to deal with a horde of mobs (For Narnia!)&lt;br /&gt;
|-&lt;br /&gt;
|Whirlwind&lt;br /&gt;
|8&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Great for yer close-qaurter adventures!&lt;br /&gt;
Turn yerself around doing damage to mobs next to you!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Warrior Skill - Leash|thumb|300px|right|Warrior using leash skill]][[File:Warrior Skill - Charge|thumb|300px|right|Warrior using charge]]&lt;br /&gt;
&lt;br /&gt;
==Ways to Build==&lt;br /&gt;
*Berserker - Prioritize getting the best weapons as you can, and go for as many Strength/Dexterity increases as possible. A tiny bit of Fortitude every now and then should be enough to keep you alive.&lt;br /&gt;
&lt;br /&gt;
*Guardian - Armor, armor, armor! If you like to be able to shrug off blow after blow (including the dreaded arrow to the knee!), then the Guardian is for you. Prioritize Fortitude! Maybe 4 or 5 points to fort every level, and the rest to either Dexterity or Strength. Weapons are your second priority.&lt;br /&gt;
*Battle tank - The balance of weapons and armor should keep any SMP party alive. Strength and Fortitude should be your main skill trees. Your job is to agro all the mosters and group them, a mage and a ranger can make quick work of a group. In SSP using your charge should kill most enemies.&lt;br /&gt;
**Paladin - A branch off of battle tank, prioritizing strength and fortitude, followed by wisdom. The goal of this build is being able to use your abilities at all times, by having loads of mana, and being able to take a hit, while still dishing out damage. Very useful when playing SSP&lt;br /&gt;
*Pure Berserker - Strength, strength, and more strength. This build gives the highest possible damage output for each level, but with low ciritcal hit chance. Only raise Strength with points, and rely on armour and weaponry for buffs to other stats.&lt;br /&gt;
&lt;br /&gt;
More to come!&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
Focus on getting a large fortitude and strength. Unlike other classes you only need stuff that has to do with you in particular. The ranger and mage should both get some strength power so they can fight if caught in close combat but a warrior should just focus on fortitude, strength and low amounts of dexterity.&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Warrior</id>
		<title>Warrior</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Warrior"/>
				<updated>2012-06-02T08:15:41Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Warrior Skill - Leap|thumb|300px|right|Warrior using leap skill]]&lt;br /&gt;
==Overview==&lt;br /&gt;
Your standard fighter-esque class. Specializes in slashing enemies to bits and charging into hordes of mobs. Can also function as a tank.&lt;br /&gt;
&lt;br /&gt;
Warriors are yer standard melee class, see? Slashin' Nagas, chargin' at Slimes, and leapin' all over the place are all in a day's work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Abilities==&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;article-table article-table-selected&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Spell&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Mana&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Cooldown&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|Leap&lt;br /&gt;
|7&lt;br /&gt;
|1.5&lt;br /&gt;
|Causes your character to soar into the air for a good distance, causing a small bit of damage on landing. Useful for when you need to get out of a jam (Ouch, my kneecaps!)&lt;br /&gt;
|-&lt;br /&gt;
|Taunt&lt;br /&gt;
|5&lt;br /&gt;
|2.5&lt;br /&gt;
|Causes a monster to focus it's attacks on you. Not really of much use in single player, but once threat mechanics are in place, this will be essential for tank type builds in SMP. (Hey, fish-face! Come and get some!)&lt;br /&gt;
|-&lt;br /&gt;
|Leash&lt;br /&gt;
|5&lt;br /&gt;
|.75&lt;br /&gt;
|Pulls a monster toward you. Useful for those times the wizard doesn't feel like making it easy for you and standing still so you can run him through. (Get over here!)&lt;br /&gt;
|-&lt;br /&gt;
|Charge&lt;br /&gt;
|5&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Ahh, my sweet, sweet charge! Causes you to, well, charge forward. When you collide with a monster, it takes a good bit of damage and is sent flying back, as well as any of its buddies stupid enough to be nearby. Good for when you need to clear a path for your group, or just need to deal with a horde of mobs (For Narnia!)&lt;br /&gt;
|-&lt;br /&gt;
|Whirlwind&lt;br /&gt;
|8&lt;br /&gt;
|1.5&lt;br /&gt;
|&lt;br /&gt;
Great for yer close-qaurter adventures!&lt;br /&gt;
Turn yerself around doing damage to mobs next to you!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Warrior Skill - Leash|thumb|300px|right|Warrior using leash skill]][[File:Warrior Skill - Charge|thumb|300px|right|Warrior using charge]]&lt;br /&gt;
&lt;br /&gt;
==Ways to Build==&lt;br /&gt;
*Berserker - Prioritize getting the best weapons as you can, and go for as many Strength/Dexterity increases as possible. A tiny bit of Fortitude every now and then should be enough to keep you alive.&lt;br /&gt;
&lt;br /&gt;
*Guardian - Armor, armor, armor! If you like to be able to shrug off blow after blow (including the dreaded arrow to the knee!), then the Guardian is for you. Prioritize Fortitude! Maybe 4 or 5 points to fort every level, and the rest to either Dexterity or Strength. Weapons are your second priority.&lt;br /&gt;
*Battle tank - The balance of weapons and armor should keep any SMP party alive. Strength and Fortitude should be your main skill trees. Your job is to agro all the mosters and group them, a mage and a ranger can make quick work of a group. In SSP using your charge should kill most enemies.&lt;br /&gt;
**Paladin - A branch off of battle tank, prioritizing strength and fortitude, followed by wisdom. The goal of this build is being able to use your abilities at all times, by having loads of mana, and being able to take a hit, while still dishing out damage. Very useful when playing SSP&lt;br /&gt;
*Pure Berserker - Strength, strength, and more strength. This build gives the highest possible damage output for each level, but with low ciritcal hit chance. Only raise Strength with points, and rely on armour and weaponry for buffs to other stats.&lt;br /&gt;
&lt;br /&gt;
More to come!&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
Focus on getting a large fortitude and strength. Unlike other classes you only need stuff that has to do with you in particular. The ranger and mage should both get some strength power so they can fight if caught in close combat but a warrior should just focus on fortitude, strength and low amounts of dexterity.&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-30T03:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* New Server Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (now available as a development build.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn (if enabled in server.properties)&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection, mob/animal spawning)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;property&amp;gt;&lt;br /&gt;
|Tells you what the current value for a property in server.properties or areaCache.properties is.&lt;br /&gt;
|-&lt;br /&gt;
|set &amp;lt;property&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
|If possible, updates the value of the property in server.properties or areaCache.properties and applies it to the game immediately.  Not all properties can be set for security or stability reasons (like ip-address or generate-structures)&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn [&amp;lt;x&amp;gt; &amp;lt;z&amp;gt;]&lt;br /&gt;
|Sets the spawn point to the given block coordinates (uses your current position if not specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the minSize in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  The in game &amp;quot;get&amp;quot; and &amp;quot;set&amp;quot; commands available to Ops are the best way to perform quick experimentation, and additionally disallow you from setting your values to anything ridiculous.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot; (selection of an area to remove on a cache miss), and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache entries that have been recently used is calculated and stored in &amp;quot;pctUsage.&amp;quot;  The exponential average of this number is stored in &amp;quot;avgPctUsage.&amp;quot;  I.e. avgPctUsage is set to avgPctUsage * w + (1-w) * pctUsage each tick, where w is &amp;quot;avgPctUsagePastWeight&amp;quot;  This gives several important numbers for you to tweak--  avgPctUsageMax and pctUsageMax, which &amp;quot;grow&amp;quot; the cache when exceeded by their respective variables, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are past values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  You'll probably want this number to start around .99, making extremely marginal changes until you get a &amp;quot;memory&amp;quot; of usage that feels right.  If your past weight is too low, your cache will be too sensitive to fluctuations and cause too many cache resizings, causing negligible to extreme lag (depending on how large your cache is and how badly you undershot it).  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; if the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  pctUsageMax generally prevents this if avgPctUsageMax doesn't catch it.  Finally, you have avgPctUsageMin, which &amp;quot;shrinks&amp;quot; the cache when it can support that low of a usage when shrinking (iow, when avgPctUsage &amp;lt; avgPctUsageMin/growthFactor)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache usage, only growing and shrinking when necessary to accurately support the needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot; or &amp;quot;shrinks&amp;quot;, it takes a moment to copy it's data into a new, larger or smaller location in memory, respectively.  &amp;quot;growthFactor&amp;quot; determines how much larger or smaller this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a growth.  Values closer to 1 may result in good matching of resources, but will result in excessive copying and more lag in response to quickly increasing needs, especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, the area cache uses an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=5&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|minSize&lt;br /&gt;
|64&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console every twenty ticks and whenever there's a cache resizing.  Extremely useful during testing, extremely annoying otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMax&lt;br /&gt;
|.90&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctUsage.&amp;quot;  The percentage leftover (1-avgPctUsageMax) could be thought of your safety buffer; the larger it is, the less likely you'll have &amp;quot;area thrashing&amp;quot; before the avgPctUsage reflects the actual demand for areas.&lt;br /&gt;
|-&lt;br /&gt;
|pctUsageMax&lt;br /&gt;
|.999&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctUsage.&amp;quot;  The percentage leftover (1-pctUsageMax) could be thought of as another safety buffer; the larger it is, the less likely you'll have an area unnecessarily reload before the tick is done and the pctUsage can be calculated.  pctUsageMax is generally a safety net, and should be set to a very high value you're certain reflects an increased need for areas.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMin&lt;br /&gt;
|.70&lt;br /&gt;
|Triggers a &amp;quot;shrink&amp;quot; when &amp;quot;avgPctUsage&amp;quot; &amp;lt; avgPctUsageMin/growthFactor.  The difference between avgPctUsageMax and avgPctUsageMin could be thought of as another safety buffer; the larger it is, the less likely you'll have &amp;quot;twitchy&amp;quot; resizings as usage fluctuates (imagine min and max were the same, and the avgPctUsage were fluctuating around that number)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase or decrease the cache's resources by when a &amp;quot;grow&amp;quot; or &amp;quot;shrink&amp;quot; occurs.  E.g. 2.0 would double the existing cache size with each growth and halve it with each shrink.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsagePastWeight&lt;br /&gt;
|0.999&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctUsage&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctUsage, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to fluctuations, causing excessive resizing and potentially crashing your server if bad enough-- too high and your cache is too resilient to immediate usage needs, growing only when it's too late and thus causing lag of Biblical proportions, also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to entirely reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-29T04:30:51Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* The Area Cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (now available as a development build.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;property&amp;gt;&lt;br /&gt;
|Tells you what the current value for a property in server.properties or areaCache.properties is.&lt;br /&gt;
|-&lt;br /&gt;
|set &amp;lt;property&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
|If possible, updates the value of the property in server.properties or areaCache.properties and applies it to the game immediately.  Not all properties can be set for security or stability reasons (like ip-address or generate-structures)&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn [&amp;lt;x&amp;gt; &amp;lt;z&amp;gt;]&lt;br /&gt;
|Sets the spawn point to the given block coordinates (uses your current position if not specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the minSize in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  The in game &amp;quot;get&amp;quot; and &amp;quot;set&amp;quot; commands available to Ops are the best way to perform quick experimentation, and additionally disallow you from setting your values to anything ridiculous.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot; (selection of an area to remove on a cache miss), and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache entries that have been recently used is calculated and stored in &amp;quot;pctUsage.&amp;quot;  The exponential average of this number is stored in &amp;quot;avgPctUsage.&amp;quot;  I.e. avgPctUsage is set to avgPctUsage * w + (1-w) * pctUsage each tick, where w is &amp;quot;avgPctUsagePastWeight&amp;quot;  This gives several important numbers for you to tweak--  avgPctUsageMax and pctUsageMax, which &amp;quot;grow&amp;quot; the cache when exceeded by their respective variables, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are past values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  You'll probably want this number to start around .99, making extremely marginal changes until you get a &amp;quot;memory&amp;quot; of usage that feels right.  If your past weight is too low, your cache will be too sensitive to fluctuations and cause too many cache resizings, causing negligible to extreme lag (depending on how large your cache is and how badly you undershot it).  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; if the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  pctUsageMax generally prevents this if avgPctUsageMax doesn't catch it.  Finally, you have avgPctUsageMin, which &amp;quot;shrinks&amp;quot; the cache when it can support that low of a usage when shrinking (iow, when avgPctUsage &amp;lt; avgPctUsageMin/growthFactor)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache usage, only growing and shrinking when necessary to accurately support the needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot; or &amp;quot;shrinks&amp;quot;, it takes a moment to copy it's data into a new, larger or smaller location in memory, respectively.  &amp;quot;growthFactor&amp;quot; determines how much larger or smaller this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a growth.  Values closer to 1 may result in good matching of resources, but will result in excessive copying and more lag in response to quickly increasing needs, especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, the area cache uses an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=5&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|minSize&lt;br /&gt;
|64&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console every twenty ticks and whenever there's a cache resizing.  Extremely useful during testing, extremely annoying otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMax&lt;br /&gt;
|.90&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctUsage.&amp;quot;  The percentage leftover (1-avgPctUsageMax) could be thought of your safety buffer; the larger it is, the less likely you'll have &amp;quot;area thrashing&amp;quot; before the avgPctUsage reflects the actual demand for areas.&lt;br /&gt;
|-&lt;br /&gt;
|pctUsageMax&lt;br /&gt;
|.999&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctUsage.&amp;quot;  The percentage leftover (1-pctUsageMax) could be thought of as another safety buffer; the larger it is, the less likely you'll have an area unnecessarily reload before the tick is done and the pctUsage can be calculated.  pctUsageMax is generally a safety net, and should be set to a very high value you're certain reflects an increased need for areas.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMin&lt;br /&gt;
|.70&lt;br /&gt;
|Triggers a &amp;quot;shrink&amp;quot; when &amp;quot;avgPctUsage&amp;quot; &amp;lt; avgPctUsageMin/growthFactor.  The difference between avgPctUsageMax and avgPctUsageMin could be thought of as another safety buffer; the larger it is, the less likely you'll have &amp;quot;twitchy&amp;quot; resizings as usage fluctuates (imagine min and max were the same, and the avgPctUsage were fluctuating around that number)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase or decrease the cache's resources by when a &amp;quot;grow&amp;quot; or &amp;quot;shrink&amp;quot; occurs.  E.g. 2.0 would double the existing cache size with each growth and halve it with each shrink.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsagePastWeight&lt;br /&gt;
|0.999&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctUsage&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctUsage, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to fluctuations, causing excessive resizing and potentially crashing your server if bad enough-- too high and your cache is too resilient to immediate usage needs, growing only when it's too late and thus causing lag of Biblical proportions, also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to entirely reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-29T04:24:47Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* The Area Cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (now available as a development build.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1 cellpadding=5&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;property&amp;gt;&lt;br /&gt;
|Tells you what the current value for a property in server.properties or areaCache.properties is.&lt;br /&gt;
|-&lt;br /&gt;
|set &amp;lt;property&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
|If possible, updates the value of the property in server.properties or areaCache.properties and applies it to the game immediately.  Not all properties can be set for security or stability reasons (like ip-address or generate-structures)&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn [&amp;lt;x&amp;gt; &amp;lt;z&amp;gt;]&lt;br /&gt;
|Sets the spawn point to the given block coordinates (uses your current position if not specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the minSize in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  The in game &amp;quot;get&amp;quot; and &amp;quot;set&amp;quot; commands available to Ops are the best way to perform quick experimentation, and additionally disallow you from setting your values to anything ridiculous.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot; (selection of an area to remove on a cache miss), and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache entries that have been recently used is calculated and stored in &amp;quot;pctUsage.&amp;quot;  The exponential average of this number is stored in &amp;quot;avgPctUsage.&amp;quot;  I.e. avgPctUsage is set to avgPctUsage * w + (1-w) * pctUsage each tick, where w is &amp;quot;avgPctUsagePastWeight&amp;quot;  This gives several important numbers for you to tweak--  avgPctUsageMax and pctUsageMax, which &amp;quot;grow&amp;quot; the cache when exceeded by their respective variables, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are past values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  You'll probably want this number to start around .99, making extremely marginal changes until you get a &amp;quot;memory&amp;quot; of usage that feels right.  If your past weight is too low, your cache will be too sensitive to fluctuations and cause too many cache resizings, causing negligible to extreme lag (depending on how large your cache is and how badly you undershot it).  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; if the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  pctUsageMax generally prevents this if avgPctUsageMax doesn't catch it.  Finally, you have avgPctUsageMin, which &amp;quot;shrinks&amp;quot; the cache when it can support that low of a usage when shrinking (iow, when avgPctUsage &amp;lt; avgPctUsageMin/growthFactor)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache usage, only growing and shrinking when necessary to accurately support the needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot; or &amp;quot;shrinks&amp;quot;, it takes a moment to copy it's data into a new, larger or smaller location in memory, respectively.  &amp;quot;growthFactor&amp;quot; determines how much larger or smaller this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a growth.  Values closer to 1 may result in good matching of resources, but will result in excessive copying and slow response to quickly increasing needs, especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, the area cache uses an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=5&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|minSize&lt;br /&gt;
|64&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console every twenty ticks and whenever there's a cache resizing.  Extremely useful during testing, extremely annoying otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMax&lt;br /&gt;
|.90&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctUsage.&amp;quot;  The percentage leftover (1-avgPctUsageMax) could be thought of your safety buffer; the larger it is, the less likely you'll have &amp;quot;area thrashing&amp;quot; before the avgPctUsage reflects the actual demand for areas.&lt;br /&gt;
|-&lt;br /&gt;
|pctUsageMax&lt;br /&gt;
|.999&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctUsage.&amp;quot;  The percentage leftover (1-pctUsageMax) could be thought of as another safety buffer; the larger it is, the less likely you'll have an area unnecessarily reload before the tick is done and the pctUsage can be calculated.  pctUsageMax is generally a safety net, and should be set to a very high value you're certain reflects an increased need for areas.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsageMin&lt;br /&gt;
|.70&lt;br /&gt;
|Triggers a &amp;quot;shrink&amp;quot; when &amp;quot;avgPctUsage&amp;quot; &amp;lt; avgPctUsageMin/growthFactor.  The difference between avgPctUsageMax and avgPctUsageMin could be thought of as another safety buffer; the larger it is, the less likely you'll have &amp;quot;twitchy&amp;quot; resizings as usage fluctuates (imagine min and max were the same, and the avgPctUsage were fluctuating around that number)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase or decrease the cache's resources by when a &amp;quot;grow&amp;quot; or &amp;quot;shrink&amp;quot; occurs.  E.g. 2.0 would double the existing cache size with each growth and halve it with each shrink.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctUsagePastWeight&lt;br /&gt;
|0.999&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctUsage&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctUsage, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to fluctuations, causing excessive resizing and potentially crashing your server if bad enough-- too high and your cache is too resilient to immediate usage needs, growing only when it's too late and thus causing lag of Biblical proportions, also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to entirely reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Naga</id>
		<title>Naga</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Naga"/>
				<updated>2012-05-27T09:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:2012-05-27 04.55.22.png|thumb|300px|]][[File:2012-05-27 04.55.22.png|thumb|300px|]][[File:2012-05-27 04.56.43.png|thumb|300px|]]Nagas are a strange mixture of snake and human. They carry golden axes, though they never drop them when slain.  Like all hostile mobs in the game, they can spawn with unique names and slight recolors/palette changes.  As of 0.6, the Nagas have had a major texture improvement.&lt;br /&gt;
&lt;br /&gt;
It is no coincidence that the old Naga resemble Chaos from Sonic Adventure II: Battle. The orange-cyan-green color scheme was subconsciously selected because [[The Hack/Mine Team|Frizzil]] secretly mourns for his long lost Chao, Douglas, who died many years ago after attaining level 99 and dominating the Chao olympics. Though Douglas's children live on, Frizzil never quite had the time to say &amp;quot;I love you&amp;quot; in between the Radical Highway runs and the dumping of green chemicals down Douglas's throat. No matter how many Chao he bred, none could make up for the opportunity he missed....&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Naga</id>
		<title>Naga</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Naga"/>
				<updated>2012-05-27T09:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:2012-05-27 04.55.22.png|thumb|300px|]][[File:2012-05-27 04.55.22.png|thumb|300px|]][[File:2012-05-27 04.56.43.png|thumb|300px|]]Nagas are a strange mixture of snake and human. They carry golden axes, though they never drop them when slain.  Like all hostile mobs in the game, they can spawn with unique names and slight recolors/palette changes.&lt;br /&gt;
&lt;br /&gt;
It is no coincidence that Naga resemble Chaos from Sonic Adventure II: Battle. The orange-cyan-green color scheme was subconsciously selected because [[The Hack/Mine Team|Frizzil]] secretly mourns for his long lost Chao, Douglas, who died many years ago after attaining level 99 and dominating the Chao olympics. Though Douglas's children live on, Frizzil never quite had the time to say &amp;quot;I love you&amp;quot; in between the Radical Highway runs and the dumping of green chemicals down Douglas's throat. No matter how many Chao he bred, none could make up for the opportunity he missed....&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-27T00:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.5E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss.&amp;quot;  &amp;quot;E-4&amp;quot; means &amp;quot;* 10^-4,&amp;quot; or &amp;quot;times 10 to the -4.&amp;quot;  It's a very small ratio, because there are thousands of hits per tick, misses occurring only when an Area is either first loaded or reloaded as the result of offloading the area despite it still being in use.  If the latter is happening too much, the cache needs to grow to support the increased demand for Areas.  If the threshold is too small, however, the cache will grow in response to initial Area loading (something that cannot be helped and must be allowed for.)&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised.  It's basically equivalent to using avgPctMissThreshold if avgPctMissPastWeight were equal to 0)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.  E.g. 2.0 would double the existing cache size with each growth.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctMissThreshold, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to minor fluctuations, causing excessive growth and eventually crashing your server-- too high and your cache is too resilient to increased cache misses, never growing and thus causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to entirely reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-27T00:06:24Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.0E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss.&amp;quot;  &amp;quot;E-4&amp;quot; means &amp;quot;10^-4,&amp;quot; or &amp;quot;10 to the -4.&amp;quot;  It's a very small ratio, because there are thousands of hits per tick, misses occurring only when an Area is either first loaded or reloaded as the result of offloading the area despite it still being in use.  If the latter is happening too much, the cache needs to grow to support the increased demand for Areas.  If the threshold is too small, however, the cache will grow in response to initial Area loading (something that cannot be helped and must be allowed for.)&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised.  It's basically equivalent to using avgPctMissThreshold if avgPctMissPastWeight were equal to 0)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.  E.g. 2.0 would double the existing cache size with each growth.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctMissThreshold, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to minor fluctuations, causing excessive growth and eventually crashing your server-- too high and your cache is too resilient to increased cache misses, never growing and thus causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to entirely reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-27T00:03:24Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* The Area Cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.0E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss.&amp;quot;  &amp;quot;E-4&amp;quot; means &amp;quot;10^-4,&amp;quot; or &amp;quot;10 to the -4.&amp;quot;  It's a very small ratio, because there are thousands of hits per tick, misses occurring only when an Area is either first loaded or reloaded as the result of offloading the area despite it still being in use.  If the latter is happening too much, the cache needs to grow to support the increased demand for Areas.  If the threshold is too small, however, the cache will grow in response to initial Area loading (something that cannot be helped and must be allowed for.)&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised.  It's basically equivalent to using avgPctMissThreshold if avgPctMissPastWeight were equal to 0)&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Basically, it determines the &amp;quot;quality&amp;quot; of avgPctMissThreshold, smoothing it out with prior miss ratios.  Too low and your cache will be too sensitive to minor fluctuations, causing excessive growth and eventually crashing your server-- too high and your cache is too resilient to increased cache misses, never growing and thus causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|emergencyResetSize&lt;br /&gt;
|131072&lt;br /&gt;
|An upper bound on your cache size that, once exceeded, forces the area cache to reset (like the &amp;quot;/reset-ac&amp;quot; command.)  Basically, set it to an amount you ''know'' will never be exceeded, like 50 times the maximum players on your server (since a player isn't liable to need more areas than can appear on their radar, 50 areas per player is an incredibly generous estimate you can be 99.999% certain is the result of erroneous growth.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-26T23:37:23Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp, no-mobs, spawn-mobs, no-animals, spawn-animals.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Explosions on the border of a protected chunk will not effect blocks inside it.  Using unprotect-blocks and default-pvp will clear their respective effects.  The mob/animal commands prevent or reinstate spawning for that creature type (though they can still wander into the chunk or spawn from mob spawners.)&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, no-mobs, no-animals, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, prohibit-pvp, no-mobs, and no-animals.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised)&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.0E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Too low and your cache will grow too frequently, eventually crashing your server-- too high and your cache never grows in response to cache misses, causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-25T22:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* New Server Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates can be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Using unprotect-blocks and default-pvp will clear their respective effects.&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, and prohibit-pvp.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised)&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.0E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Too low and your cache will grow too frequently, eventually crashing your server-- too high and your cache never grows in response to cache misses, causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Server_Features</id>
		<title>Server Features</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Server_Features"/>
				<updated>2012-05-25T22:03:58Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: /* New Server Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===New Server Commands===&lt;br /&gt;
These commands are new to Hack/Mine as of version 0.6 (not officially released yet.)  Smart name matching has been added as well, so players can be searched for via the first few letters of their name, both case and 1337 insensitively.&lt;br /&gt;
&lt;br /&gt;
If chunkX and chunkZ aren't specified, the player's current chunk is assumed.  Dimensions may be -1, 0, 1, or 10 for the Nether, the surface, the End, and the mystery dimension respectively.  The surface is assumed when not specified.&lt;br /&gt;
&lt;br /&gt;
Chunk coordinates may be calculated from block coordinates if they're divided by 16 and floored (e.g. block coords of (26, -113) are inside chunk (1, -8)).  Your current position in block coords can be found by opening the debug menu with F3 and taking &amp;quot;x&amp;quot; and &amp;quot;z&amp;quot; (your height being &amp;quot;y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Player Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|spawn&lt;br /&gt;
|Teleports the player to spawn&lt;br /&gt;
|-&lt;br /&gt;
|who [player]&lt;br /&gt;
|Gives the name, class, race, and level of the specified player (or yourself if the player isn't specified).&lt;br /&gt;
|-&lt;br /&gt;
|flags [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|Spits out all flags on the chunk (pvp enabling/disabling, block protection)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;roll | rand | random&amp;lt;/nowiki&amp;gt; [die size]&lt;br /&gt;
|Spits out a random number in chat from 1 - &amp;lt;die size&amp;gt; (100 if none is given).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+'''Console/Op Commands'''&lt;br /&gt;
!width = 350|Command&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|reward &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Gives some currency to the player.  If &amp;quot;mobdrop&amp;quot; is specified, it gives them a typical amount of gold from a monster of the player's level, times &amp;lt;mult&amp;gt;.  Otherwise, it gives the player &amp;lt;amount&amp;gt; of &amp;lt;cur&amp;gt;, where &amp;lt;cur&amp;gt; is p, g, s, c, platinum, plat, gold, silver, or copper.&lt;br /&gt;
|-&lt;br /&gt;
|penalize &amp;lt;player&amp;gt; (&amp;lt;amount&amp;gt; &amp;lt;cur&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; mobdrop &amp;lt;mult&amp;gt;)&lt;br /&gt;
|Removes currency from the player (will report amount actually removed if they have less).&lt;br /&gt;
|-&lt;br /&gt;
|setspawn &amp;lt;x&amp;gt; &amp;lt;z&amp;gt;&lt;br /&gt;
|Sets the spawn point to the given block coordinates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;flag&amp;gt; [&amp;lt;chunkX&amp;gt; &amp;lt;chunkZ&amp;gt; [dim]]&lt;br /&gt;
|&amp;lt;flag&amp;gt; may be protect-blocks, unprotect-blocks, prohibit-pvp, allow-pvp, default-pvp.  Block protection prevents blocks from being dug, placed, or explodinated by non-ops, whereas prohibit-pvp and allow-pvp override the server's default pvp settings for that chunk.  Using unprotect-blocks and default-pvp will clear their respective effects.&lt;br /&gt;
|-&lt;br /&gt;
|clear-all &amp;lt;flag&amp;gt;&lt;br /&gt;
|Removes the flag from all chunks; &amp;lt;flag&amp;gt; may be protect-blocks, prohibit-pvp, allow-pvp, pvp, flags&lt;br /&gt;
|-&lt;br /&gt;
|resize-ac [newsize]&lt;br /&gt;
|Resizes the area cache (to the size in areaCache.properties if not specified).  If shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|-&lt;br /&gt;
|reset-ac [newsize]&lt;br /&gt;
|Entirely cleans the area cache and resizes it (to the size in areaCache.properties if not specified).  May fix lag if the server's acting up.  Again, if shrinking, an area size higher than the number of players is recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Flagged chunk data is saved to &amp;quot;flaggedChunks.txt&amp;quot; and can be edited while the server is off for quick flagging.  Possible flags are protect-blocks, allow-pvp, and prohibit-pvp.&lt;br /&gt;
&lt;br /&gt;
===The Area Cache===&lt;br /&gt;
&amp;quot;areaCache.properties&amp;quot; contains advanced settings for Hack/Mine's area cache, and fine-tuning them may improve performance and stability for your H/M server.  Also, [[User:Frizzil|Frizzil]] needs people to mess with it in hopes of finding better numbers (if you screw it up or aren't sure about your changes, just delete the file and H/M will generate a new one for you.)  Fine-tuning is really only necessary if your server is at 20+ people.  However, the larger your server is, the more significant fine-tuning your area cache will become.  You'll want to enable &amp;quot;verboseLogging&amp;quot; when experimenting and disable it otherwise, to avoid console clutter.  If you find settings that work, post them along with your system and server specs on the discussion page!&lt;br /&gt;
&lt;br /&gt;
Things to consider when tuning, from most to least important: How fast is my file I/O?  What's the speed on my CPU?  How much RAM do I have?&lt;br /&gt;
&lt;br /&gt;
Basically, the area cache is a place in memory where [[Areas]] are stored for quick access.  A &amp;quot;cache miss&amp;quot; is when a request is made for an area that isn't in the cache, resulting in it being loaded from disk and into the cache-- you're trying to minimize these as much as possible, since file I/O is VERY expensive (unless you've got SSD like a boss!)  Obviously, areas must be loaded at least once, but the trick is storing areas that will likely be used again and removing those that won't to make room.  More recently referenced areas are kept, whereas less recently referenced ones are removed.  A larger cache helps, but results in slower &amp;quot;victim selection&amp;quot;, and at extreme sizes results in general lag and high RAM consumption.&lt;br /&gt;
&lt;br /&gt;
Each tick, the ratio of cache queries that were misses is calculated and stored in &amp;quot;pctMiss.&amp;quot;  This number is extremely small (generally peaking in E-4), but is still significant given that a cache miss can be over 1000 times slower than a cache hit.  The exponential average of this number is stored in &amp;quot;avgPctMiss.&amp;quot;  I.e. avgPctMiss is set to avgPctMiss * w + (1-w) * pctMiss each tick, where w is &amp;quot;avgPctMissPastWeight&amp;quot;  This gives three important numbers for you to tweak-- avgPctMissThreshold and pctMissThreshold, which &amp;quot;grow&amp;quot; the cache when exceeded, and &amp;quot;avgPctMissPastWeight&amp;quot;, which is &amp;quot;how significant are recent values?&amp;quot; and effectively smooths out avgPctMiss as it approaches 1.00 (at 20 ticks/second, slight variations of this number from the default make dramatic differences.)  If your past weight is too low, your cache will be too sensitive to minor fluctuations and grow too frequently, eventually crashing your server from RAM consumption or massive lag.  If your past weight is too high, your cache will be too resilient to fluctuations, resulting in &amp;quot;area thrashing&amp;quot; as the need for areas exceeds the size of the cache, causing needed areas to be saved and loaded with each tick (This will cause massive lag and may also crash your server.)  Basically, fine tune these numbers to get the perfect amount of responsiveness to cache misses, only growing when necessary to support the increased needs of players.&lt;br /&gt;
&lt;br /&gt;
When the cache &amp;quot;grows&amp;quot;, it takes a moment to copy it's data into a new, larger location in memory.  &amp;quot;growthFactor&amp;quot; determines how much larger this location should be than the last location.  Larger values result in less copying and hence lag, but more poorly associate the right cache size with your needs.  E.g. a factor of 2 makes for little copying but potentially twice the resources consumed than needed if you just barely trigger a resizing.  Values closer to 1 may result in good matching of resources, but will result in excessive copying (and even slow response to needs), especially at larger cache sizes.&lt;br /&gt;
&lt;br /&gt;
For you fellow computer science geeks, this is an aging page replacement algorithm (except not pages), using a 64-bit &amp;quot;age&amp;quot; for each cache entry, shifting once every tick (about 20 times a second) [http://en.wikipedia.org/wiki/Page_replacement_algorithm further reading].  The &amp;quot;growthFactor&amp;quot; tradeoffs are directly associated with that of a dynamic array's.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!|Property&lt;br /&gt;
!|Default Value&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|startingCacheSize&lt;br /&gt;
|16&lt;br /&gt;
|The size to initialize the area cache at.  Not bad to set it higher if you have a large server, to avoid the lag of resizing.  Each player will need at least one area at any time, but players also frequently inhabit the same area, resulting in overlap.&lt;br /&gt;
|-&lt;br /&gt;
|verboseLogging&lt;br /&gt;
|false&lt;br /&gt;
|If set to true, will spit info out to the console whenever there's a &amp;quot;cache miss&amp;quot; or a cache resizing.  Specifically, the number of misses, pctMisses, and avgPctMisses at that tick.&lt;br /&gt;
|-&lt;br /&gt;
|pctMissThreshold&lt;br /&gt;
|1.0&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;pctMiss&amp;quot; (set to 100% by default, basically not used.  Almost like an emergency &amp;quot;GROW MY DANG CACHE NOW&amp;quot; threshold, which may be ill-advised)&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissThreshold&lt;br /&gt;
|1.0E-4&lt;br /&gt;
|Triggers a &amp;quot;grow&amp;quot; when exceeded by &amp;quot;avgPctMiss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|growthFactor&lt;br /&gt;
|2.0&lt;br /&gt;
|The relative amount to increase the cache's resources by when a &amp;quot;grow&amp;quot; occurs.&lt;br /&gt;
|-&lt;br /&gt;
|avgPctMissPastWeight&lt;br /&gt;
|0.96&lt;br /&gt;
|The weight to give to the past &amp;quot;avgPctMiss&amp;quot; when calculating the exponential average.  Should be between .85 and 1.0.  Too low and your cache will grow too frequently, eventually crashing your server-- too high and your cache never grows in response to cache misses, causing lag of Biblical proportions and also potentially crashing your server.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to test this stuff out!  If you're testing with a large player base, gradually make changes and see how they go so you don't piss everyone off.  Take notes even-- save old &amp;quot;areaCache.properties&amp;quot; and write notes at the bottom of it, so you can go back to good settings once you've found them.  Finally, good settings on one machine aren't necessarily good another, especially if the system specs are drastically different (SSD vs Harddisk, low-end CPU vs monster CPUs, etc)&lt;br /&gt;
&lt;br /&gt;
And most importantly, enjoy speeding up your server and improving its stability!&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Elf</id>
		<title>Elf</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Elf"/>
				<updated>2012-05-18T14:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elves are the most varied and adaptive of all races, so summarizing them is a tad difficult. Some elves are wildsmen, living solitarily in the forests for their entire lives. Others have never spent a day outside of the city, burying themselves in their studies and practicing politics amongst the other nobles. Others still are nomads, existing in small, tight-knit communities in search of natural resources.&lt;br /&gt;
&lt;br /&gt;
Elves have known of Minecraftia for eons, but have only recently ventured into it after learning the Dwarves discovered valuable resources there. The Dwarven and Elven nobilities have long been at odds with one another, and live in constant fear of the other race gaining a military advantage.&lt;br /&gt;
&lt;br /&gt;
When Elf is selected your character looks slightly taller and stretched.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot;&lt;br /&gt;
|+'''Elf Starter Stats'''&lt;br /&gt;
|Strength&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Agility&lt;br /&gt;
|Unused&lt;br /&gt;
|-&lt;br /&gt;
|Dexterity&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|Intelligence&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Wisdom&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|Fortitude&lt;br /&gt;
|9&lt;br /&gt;
|}&lt;br /&gt;
[[File:Elf.png|thumb|A picture showing the elf compared to a three block high column. The elf appears stretched and APPEARS much taller than the dwarf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Races]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Halfling</id>
		<title>Halfling</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Halfling"/>
				<updated>2012-05-18T14:45:26Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Halflings are a tricksy race, both nimble and cunning. They are great thinkers and risk takers, always able to realize a profit where others could not. Despite their timid appearance, they are scorned universally, the Great War many hunderds of years ago having been waged in the name of a Halfling. Consequently, they've become disturbingly thick-skinned little buggers, continuing to inhabit cities everywhere, pickin' pockets, openin' shop, and laughing in the face of extreme adversity as the opportunity presents itself.&lt;br /&gt;
&lt;br /&gt;
Halflings are notably the smallest of all races, at a stature of only 1.3 blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table article-table-selected&amp;quot;&lt;br /&gt;
|+'''Halfling Starter Stats'''&lt;br /&gt;
|Strength&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|Agility&lt;br /&gt;
|Unused&lt;br /&gt;
|-&lt;br /&gt;
|Dexterity&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|Intelligence&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|Wisdom&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Fortitude&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Traits==&lt;br /&gt;
&lt;br /&gt;
[[File:2012-04-26_18.30.16.png|thumb|A halfling mage. If you look closely you can see the item glitch.]]&lt;br /&gt;
*Halfings are initially the best [[mage]] class because of their starting stats.&lt;br /&gt;
*The hit box for arrows and magic from wands also seems to be affected by their height.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
The items do not fit in the players hand. Said item can float above or below the characters actual hand. This effect is unseen in First Person.&lt;br /&gt;
&lt;br /&gt;
They can't fit through one block high holes because they're just slightly taller (1.4 blocks)&lt;br /&gt;
&lt;br /&gt;
[[Category:Races]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Steve</id>
		<title>Steve</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Steve"/>
				<updated>2012-05-18T14:44:15Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Steve.png|thumb|Comparison between the Steve and a 3 Block high pole. The Steve is just under 2 blocks, while the elf is exactly two blocks, the dwarf is  shorter than the steve, and the halfling is 1.3 blocks]]The Steves are a proud, nomadic race, having been the first to settle the dangerous lands of Minecraftia thousands of years ago. Steves are among the most socially advanced races, and as such are the most prevalent race existing in communities. They are an amicable bunch, capable of great acts of kindness, yet easily manipulated for the benefit of others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table article-table-selected&amp;quot;&lt;br /&gt;
|+'''Steve Starter Stats'''&lt;br /&gt;
|Strength&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|Agility&lt;br /&gt;
|Unused&lt;br /&gt;
|-&lt;br /&gt;
|Dexterity&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Intelligence&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|Wisdom&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|Fortitude&lt;br /&gt;
|11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Races]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	<entry>
		<id>http://www.hackslashmine.net/hsmwiki/Dwarf</id>
		<title>Dwarf</title>
		<link rel="alternate" type="text/html" href="http://www.hackslashmine.net/hsmwiki/Dwarf"/>
				<updated>2012-05-18T14:43:00Z</updated>
		
		<summary type="html">&lt;p&gt;69.246.180.210: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dwarves were the first intelligent race to come into existence. As such, they are not very intelligent. However they are a proud, hard-working, and stoutly bunch, always liable to get the job done. The surface dwelling dwarfes have disconnected from their earth abiding ancestors long ago. Of course, they are always very good storytellers, I swear! After a little grog, even the snootiest dwarf is liable to talk a stranger's ears off.&lt;br /&gt;
==Traits==&lt;br /&gt;
*Dwarves are one of the best races to start on for a warrior because of their starting stats.&lt;br /&gt;
*Dwarves are slightly shorter than the standard [[Steve]] , but taller than [[Halfling]]s .&lt;br /&gt;
*Dwarves are the best race for starting a warrior who you want to specialize into a sort of Beserker. Steves, however, are better for warriors who want to be more balanced in stats because of their starter statistics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot;&lt;br /&gt;
|+'''Dwarf Starter Stats'''&lt;br /&gt;
|Strength&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|Agility&lt;br /&gt;
|Unused&lt;br /&gt;
|-&lt;br /&gt;
|Dexterity&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|Intelligence&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Wisdom&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|Fortitude&lt;br /&gt;
|10&lt;br /&gt;
|}&lt;br /&gt;
[[File:Dwarf_-_Tree.png|thumb|Comparison between a dwarf and a tree. The trunk is 3 blocks at the top of the picture. Note how the dwarf is slightly shorter than the second tree block]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Races]]&lt;/div&gt;</summary>
		<author><name>69.246.180.210</name></author>	</entry>

	</feed>