diff -r -x 'diff.*' -x client.swf -x version.txt -x '*.xml' -x _ '--unified=8' -b -B ../current/constants.json ./constants.json
--- ../current/constants.json	2015-12-03 19:36:12.810580324 +0000
+++ ./constants.json	2015-12-05 01:10:52.516850058 +0000
@@ -1,8 +1,8 @@
 {
   "BUILD_VERSION": "27.7",
-  "MINOR_VERSION": "3",
+  "MINOR_VERSION": "4",
   "PORT": 2050,
   "RANDOM1": "311f80691451c71b09a13a2a6e",
   "RANDOM2": "72c5583cafb6818995cbd74b80",
   "RSA_PUBLIC_KEY": "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCKFctVrhfF3m2Kes0FBL/JFeOcmNg9eJz8k/hQy1kadD+XFUpluRqa//Uxp2s9W2qE0EoUCu59ugcf/p7lGuL99UoSGmQEynkBvZct+/M40L0E0rZ4BVgzLOJmIbXMp0J4PnPcb6VLZvxazGcmSfjauC7F3yWYqUbZd/HCBtawwIDAQAB\n-----END PUBLIC KEY-----"
 }
\ No newline at end of file
diff -r -x 'diff.*' -x client.swf -x version.txt -x '*.xml' -x _ '--unified=8' -b -B ../current/json/Objects.json ./json/Objects.json
--- ../current/json/Objects.json	2015-12-03 19:35:45.730581685 +0000
+++ ./json/Objects.json	2015-12-05 01:10:27.148845956 +0000
@@ -10392,19 +10392,19 @@
         "LifetimeMS": "2400"
       },
       "DisplayId": "Blue Flaming Skull"
     },
     {
       "type": "0x0d59",
       "id": "Cube God",
       "Class": "Character",
-      "AnimatedTexture": {
-        "File": "chars16x16rEncounters",
-        "Index": "125"
+      "Texture": {
+        "File": "lofiChar216x16",
+        "Index": "0x37"
       },
       "HitSound": "monster/cubes_hit",
       "DeathSound": "monster/cubes_death",
       "Size": "120",
       "MaxHitPoints": "10000",
       "Hero": "",
       "Quest": "",
       "God": "",
@@ -10432,19 +10432,19 @@
       "Enemy": "",
       "DisplayId": "Cube God"
     },
     {
       "type": "0x0d5a",
       "id": "Cube Overseer",
       "Class": "Character",
       "Enemy": "",
-      "AnimatedTexture": {
-        "File": "chars8x8rEncounters",
-        "Index": "120"
+      "Texture": {
+        "File": "lofiChar28x8",
+        "Index": "0x40"
       },
       "HitSound": "monster/cubes_hit",
       "DeathSound": "monster/cubes_death",
       "MaxHitPoints": "1500",
       "Cube": "",
       "Projectile": [
         {
           "id": "0",
@@ -10466,19 +10466,19 @@
       "DisplayId": "Cube Overseer"
     },
     {
       "type": "0x0d5b",
       "id": "Cube Defender",
       "Group": "Cube Minions",
       "Class": "Character",
       "Enemy": "",
-      "AnimatedTexture": {
-        "File": "chars8x8rEncounters",
-        "Index": "121"
+      "Texture": {
+        "File": "lofiChar28x8",
+        "Index": "0x41"
       },
       "HitSound": "monster/cubes_hit",
       "DeathSound": "monster/cubes_death",
       "MaxHitPoints": "1000",
       "Cube": "",
       "Projectile": {
         "id": "0",
         "ObjectId": "Yellow Magic",
@@ -10492,19 +10492,19 @@
       "DisplayId": "Cube Defender"
     },
     {
       "type": "0x0d5c",
       "id": "Cube Blaster",
       "Group": "Cube Minions",
       "Class": "Character",
       "Enemy": "",
-      "AnimatedTexture": {
-        "File": "chars8x8rEncounters",
-        "Index": "122"
+      "Texture": {
+        "File": "lofiChar28x8",
+        "Index": "0x42"
       },
       "HitSound": "monster/cubes_hit",
       "DeathSound": "monster/cubes_death",
       "MaxHitPoints": "500",
       "Cube": "",
       "Projectile": [
         {
           "id": "0",
@@ -72945,16 +72945,40 @@
         "Damage": "70",
         "Size": "110",
         "LifetimeMS": "2300",
         "MultiHit": ""
       },
       "DisplayId": "Limon the Sprite God"
     },
     {
+      "id": "Limon GroundShot",
+      "type": "0x0bb0",
+      "Class": "Character",
+      "Texture": {
+        "File": "invisible",
+        "Index": "0"
+      },
+      "MaxHitPoints": "10",
+      "Size": "0",
+      "DisplayId": "Limon GroundShot"
+    },
+    {
+      "id": "Limon SafeGround",
+      "type": "0x0bb1",
+      "Class": "Character",
+      "Texture": {
+        "File": "invisible",
+        "Index": "0"
+      },
+      "MaxHitPoints": "10",
+      "Size": "0",
+      "DisplayId": "Limon SafeGround"
+    },
+    {
       "type": "0x0d07",
       "id": "Limon Element 1",
       "DisplayId": "Limon Element",
       "Group": "AttackType",
       "Class": "Character",
       "Enemy": "",
       "StasisImmune": "",
       "MaxHitPoints": "100000",
@@ -76735,20 +76759,23 @@
               {
                 "File": "lofiEnvironment3",
                 "Index": "0xa5"
               }
             ]
           }
         }
       },
+      "Static": "",
+      "OccupySquare": "",
       "HitSound": "monster/stone_walls_hit",
       "DeathSound": "monster/stone_walls_death",
-      "Static": "",
-      "OccupySquare": ""
+      "MaxHitPoints": "2200",
+      "StasisImmune": "",
+      "Enemy": ""
     },
     {
       "type": "0x180e",
       "id": "Gothic Window 1",
       "Class": "Wall",
       "Texture": {
         "File": "lofiEnvironment3",
         "Index": "0xa6"
diff -r -x 'diff.*' -x client.swf -x version.txt -x '*.xml' -x _ '--unified=8' -b -B ../current/strings.json ./strings.json
--- ../current/strings.json	2015-12-03 19:35:42.858581831 +0000
+++ ./strings.json	2015-12-05 01:10:24.472845525 +0000
@@ -315,18 +315,18 @@
   "Friend.FriendDefaultText": "No friends. Invite people to your friends list!",
   "Friend.FriendInvitationDefaultText": "No invitations.",
   "Friend.ReachCapacity": "You have reached the maximum number of friends.",
   "Friend.RemoveRight": "Remove friend",
   "Friend.RemoveRightDesc": "Remove this friend from your friend list.",
   "Friend.RemoveText": "Are you sure you want to remove {name} from your friend list?",
   "Friend.RemoveTitle": "Remove Friend",
   "Friend.SentInvitationText": "Friend invitation sent to {name}.",
-  "Friend.TeleportDesc": "Connect to the server as your ",
-  "Friend.TeleportTitle": "Go to:",
+  "Friend.TeleportDesc": "Your friend is playing somewhere in this server. Clicking this will take you to the Nexus.",
+  "Friend.TeleportTitle": "Join Server",
   "Friend.TotalFriend": "Total Friends: {total}",
   "FusionStrength.Bad": "BAD",
   "FusionStrength.Fantastic": "FANTASTIC",
   "FusionStrength.Good": "GOOD",
   "FusionStrength.Great": "GREAT",
   "FusionStrength.Low": "LOW",
   "FusionStrength.Maxed": "MAXED",
   "FusionStrength.None": "NONE",
@@ -555,19 +555,22 @@
   "Options.DrawTextBubblesDesc": "This toggles whether to draw text bubbles",
   "Options.EscapeToNexus": "Escape To Nexus",
   "Options.EscapeToNexusDesc": "This key will instantly escape you to the Nexus",
   "Options.FilterOffensiveLanguage": "Filter Offensive Language",
   "Options.FilterOffensiveLanguageDesc": "This toggles whether offensive language filtering will be attempted",
   "Options.Friend": "Friends",
   "Options.FriendList": "Show Friend List",
   "Options.FriendListDesc": "Quickly show or hide the friend list panel.",
+  "Options.FriendsStarReqDesc": "Only see friend invitations from players who have earned at least this amount of starts.",
   "Options.FullScreenMode": "Fullscreen Mode",
   "Options.FullScreenModeDesc": "This toggles whether the game is run in fullscreen mode.",
   "Options.Graphics": "Graphics",
+  "Options.HPBar": "HP Bars",
+  "Options.HPBarDesc": "Toggle player and enemy HP bars",
   "Options.HardwareAcc": "Hardware Acceleration",
   "Options.HardwareAccDesc": "Enables hardware acceleration. This reduces load on the CPU and may increase performance.",
   "Options.HardwareAccDescError": "Hardware Acceleration could not be enabled.  Please check flash player settings (right click on title screen).",
   "Options.HardwareAccHotkey": "Hardware Acc. Hotkey",
   "Options.HardwareAccHotkeyDesc": "Quickly enable or disable hardware acceleration.",
   "Options.HotKeys": "Hot Keys",
   "Options.InteractOrBuy": "Interact/Buy",
   "Options.InteractOrBuyDesc": "This key will allow you to enter a portal or buy an item",
@@ -623,17 +626,17 @@
   "Options.SwitchTabsDesc": "This key will flip through your tabs.",
   "Options.ToggleBarText": "Toggle HP/MP Text",
   "Options.ToggleBarTextDesc": "Always show text value for remaining HP/MP",
   "Options.ToggleCentering": "Toggle Centering of Player",
   "Options.ToggleCenteringDesc": "This key will toggle the position between centered and offset",
   "Options.ToggleFullscreen": "Toggle Fullscreen Mode",
   "Options.ToggleFullscreenDesc": "Toggle whether the game is run in a window or fullscreen",
   "Options.ToggleHPBar": "Toggle HP Bars",
-  "Options.ToggleHPBarDesc": "Toggle player and enemy HP bars",
+  "Options.ToggleHPBarDesc": "This key will toggle player and enemy HP bars",
   "Options.ToggleParticleEffect": "Particle Effect",
   "Options.ToggleParticleEffectDesc": "Reduce particle to help performance",
   "Options.TogglePerformanceStats": "Toggle Performance Stats",
   "Options.TogglePerformanceStatsDesc": "This key will toggle a display of fps and memory usage",
   "Options.TradeWithFriends": "Trade Requests From Friends Only",
   "Options.TradeWithFriendsDesc": "Only allow friends send you trade request. You can still initiate Trades with other players.",
   "Options.UseBuyHealth": "Use/Buy Health Potion",
   "Options.UseBuyHealthDesc": "This key will use health potions if available, buy if unavailable",
@@ -641,17 +644,17 @@
   "Options.UseBuyMagicDesc": "This key will use magic potions if available, buy if unavailable",
   "Options.UseSpecialAbility": "Use Special Ability",
   "Options.UseSpecialAbilityDesc": "This key will activate your special ability",
   "Options.chatAll": "Player Chat",
   "Options.chatAllDesc": "Toggle Player chat ON / OFF. Does not hide System messages. NOTE: This also affects Whisper and Guild Chat options.",
   "Options.chatGuild": "Guild Chat",
   "Options.chatGuildDesc": "Toggle Guild chat ON or OFF. Turn this ON, Player Chat OFF, and Whisper Chat OFF to only display chats from Guild members.",
   "Options.chatStarReq": "Star Requirement",
-  "Options.chatStarReqDesc": "Only see chat from players who have earned at least this amount of stars.  May help with chat spam.",
+  "Options.chatStarReqDesc": "Only see chat from players who have earned at least this amount of starts. May help with chat spam.",
   "Options.chatTrade": "Trade Requests",
   "Options.chatTradeDesc": "When turned OFF you will not see any incoming Trade requests. You can still initiate Trades with other players.",
   "Options.chatWhisper": "Whisper Chat",
   "Options.chatWhisperDesc": "Toggle Whisper chat ON or OFF. Turn this ON, Player Chat OFF, and Guild Chat OFF to only display Whispers.  May help with chat spam.",
   "Options.continueButton": "continue",
   "Options.dubstepMode": "Dubstep Mode",
   "Options.dubstepModeDesc": "!WARNING! Avoid if prone to light induced seizures.",
   "Options.forceChatQuality": "Force High Quality Chat Text",
@@ -660,16 +663,17 @@
   "Options.hidePlayerChatDesc": "Hides the chat window when turned ON.",
   "Options.homeButton": "back to home",
   "Options.legal1": "Privacy Policy",
   "Options.legal1Desc": "Privacy Policy for Realm of the Mad God",
   "Options.legal2": "Terms of Service & EULA",
   "Options.legal2Desc": "Terms of Service and End User License Agreement for Realm of the Mad God",
   "Options.legalView": "View",
   "Options.resetToDefaultsButton": "reset to defaults",
+  "Options.starReq": "Star Requirement",
   "Options.title": "Options",
   "OrbComparison.damageEffect": "Damaging for {duration} secs",
   "OrbComparison.selfOutput": "Effect on Self: {effect}",
   "OrbComparison.speedyEffect": "Speedy for {duration} secs",
   "OrbComparison.statis": "{duration} secs",
   "OrbComparison.statisOutput": "Stasis on group: {stasis}",
   "PackageButton.day": "1 day",
   "PackageButton.days": "{number} days",
@@ -2168,16 +2172,17 @@
   "equip.Armor_made_from_interlocking_links_of_metal.": "Armor made from interlocking links of metal.",
   "equip.Armor_made_from_overlapping_plates_of_metal.": "Armor made from overlapping plates of metal.",
   "equip.Armor_made_from_the_scales_of_a_full_grown_dragon.": "Armor made from the scales of a full grown dragon.",
   "equip.Armor_made_from_the_strongest_and_most_desirable_of_all_met": "Armor made from the strongest and most desirable of all metals.",
   "equip.Armor_made_from_the_thick_leather_of_a_dire_bear.": "Armor made from the thick leather of a dire bear.",
   "equip.Armor_made_of_hardened_leather.": "Armor made of hardened leather.",
   "equip.Artemis_Skin": "Artemis Skin",
   "equip.As_I_lifted_the_stone_from_itAPOSs_resting_place_it_became_": "As I lifted the stone from it's resting place it became readily apparent there was more to it than met the eye...",
+  "equip.As_I_lifted_the_stone_from_its_resting_place_it_became_read": "As I lifted the stone from its resting place it became readily apparent there was more to it than met the eye...",
   "equip.Ascended_Sorcerer_Skin": "Ascended Sorcerer Skin",
   "equip.Avenger_Staff": "Avenger Staff",
   "equip.B.B._Wolf_Skin": "B.B. Wolf Skin",
   "equip.Backpack": "Backpack",
   "equip.Bahama_Sunrise": "Bahama Sunrise",
   "equip.Baneserpent_Poison": "Baneserpent Poison",
   "equip.Banishment_Orb": "Banishment Orb",
   "equip.Barely_Attuned_Magic_Thingy": "Barely Attuned Magic Thingy",
@@ -5129,16 +5134,18 @@
   "snakePit.Stheno_Pet": "Stheno Pet",
   "snakePit.Stheno_Swarm": "Stheno Swarm",
   "snakePit.Stheno_the_Snake_Queen": "Stheno the Snake Queen",
   "snakePit.Yellow_Python": "Yellow Python",
   "spriteWorld.Limon_Element_1": "Limon Element",
   "spriteWorld.Limon_Element_2": "Limon Element",
   "spriteWorld.Limon_Element_3": "Limon Element",
   "spriteWorld.Limon_Element_4": "Limon Element",
+  "spriteWorld.Limon_GroundShot": "Limon GroundShot",
+  "spriteWorld.Limon_SafeGround": "Limon SafeGround",
   "spriteWorld.Limon_the_Sprite_God": "Limon the Sprite God",
   "spriteWorld.Native_Darkness_Sprite": "Native Darkness Sprite",
   "spriteWorld.Native_Fire_Sprite": "Native Fire Sprite",
   "spriteWorld.Native_Ice_Sprite": "Native Ice Sprite",
   "spriteWorld.Native_Magic_Sprite": "Native Magic Sprite",
   "spriteWorld.Native_Nature_Sprite": "Native Nature Sprite",
   "spriteWorld.Native_Sprite_God": "Native Sprite God",
   "stringlist.Beach_Bum.new.0": "An elusive Beach Bum is hiding somewhere in the Realm.",
@@ -5146,29 +5153,29 @@
   "stringlist.Bonegrind_the_Butcher.everySoOften.0": "Oryx's minions will eat well tonight!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.1": "Ahhhh!! Fresh meat for the minions!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.2": "More mortals for the minions to feast on!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.3": "Plump and fleshy!  Just like I like them!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.4": "Guards!  Bring in another prisoner!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.5": "Oryx always feeds his minions well!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.6": "Another glorious day in Oryx's kitchens!",
   "stringlist.Bonegrind_the_Butcher.everySoOften.7": "This one can go in the soup!",
-  "stringlist.Cube_God.death.0": "You have dispatched my Turkey God, but you will never escape my Realm!",
-  "stringlist.Cube_God.killed.0": "{KILLER}, you pathetic swine!  How dare you assault my Turkey God?",
-  "stringlist.Cube_God.killed.1": "{KILLER}, you wretched dog!  You killed my Turkey God!",
-  "stringlist.Cube_God.killed.2": "{KILLER}, you may have destroyed my Turkey God but you will never defeat me!",
-  "stringlist.Cube_God.killed.3": "I have many more Turkey Gods, {KILLER}!",
-  "stringlist.Cube_God.many.0": "You piteous cretins!  {COUNT} Turkey Gods still guard me!",
-  "stringlist.Cube_God.many.1": "Your pathetic rabble will never survive against my {COUNT} Turkey Gods!",
-  "stringlist.Cube_God.many.2": "Filthy vermin! My {COUNT} Turkey Gods will exterminate you!",
-  "stringlist.Cube_God.many.3": "You feeble creatures have no hope against my {COUNT} Turkey Gods!",
-  "stringlist.Cube_God.many.4": "Loathsome slugs!  My {COUNT} Turkey Gods will defeat you!",
-  "stringlist.Cube_God.new.0": "Your meager abilities cannot possibly challenge a Turkey God!",
-  "stringlist.Cube_God.one.0": "Worthless mortals!  A mighty Turkey God defends me!",
-  "stringlist.Cube_God.one.1": "Wretched mongrels!  An unconquerable Turkey God is my bulwark!",
+  "stringlist.Cube_God.death.0": "You have dispatched my Cube God, but you will never escape my Realm!",
+  "stringlist.Cube_God.killed.0": "{KILLER}, you pathetic swine!  How dare you assault my Cube God?",
+  "stringlist.Cube_God.killed.1": "{KILLER}, you wretched dog!  You killed my Cube God!",
+  "stringlist.Cube_God.killed.2": "{KILLER}, you may have destroyed my Cube God but you will never defeat me!",
+  "stringlist.Cube_God.killed.3": "I have many more Cube Gods, {KILLER}!",
+  "stringlist.Cube_God.many.0": "You piteous cretins!  {COUNT} Cube Gods still guard me!",
+  "stringlist.Cube_God.many.1": "Your pathetic rabble will never survive against my {COUNT} Cube Gods!",
+  "stringlist.Cube_God.many.2": "Filthy vermin! My {COUNT} Cube Gods will exterminate you!",
+  "stringlist.Cube_God.many.3": "You feeble creatures have no hope against my {COUNT} Cube Gods!",
+  "stringlist.Cube_God.many.4": "Loathsome slugs!  My {COUNT} Cube Gods will defeat you!",
+  "stringlist.Cube_God.new.0": "Your meager abilities cannot possibly challenge a Cube God!",
+  "stringlist.Cube_God.one.0": "Worthless mortals!  A mighty Cube God defends me!",
+  "stringlist.Cube_God.one.1": "Wretched mongrels!  An unconquerable Cube God is my bulwark!",
   "stringlist.Cyclops_God.everySoOften.0": "Leave my castle!",
   "stringlist.Cyclops_God.everySoOften.1": "You will be my food, {PLAYER}!",
   "stringlist.Cyclops_God.everySoOften.2": "I will suck the marrow from your bones!",
   "stringlist.Cyclops_God.everySoOften.3": "More wine!",
   "stringlist.Cyclops_God.everySoOften.4": "Blargh!!",
   "stringlist.Cyclops_God.everySoOften.5": "I will floss with your tendons!",
   "stringlist.Cyclops_God.everySoOften.6": "Die, puny human!",
   "stringlist.Cyclops_God.everySoOften.7": "I smell the blood of an Englishman!",