27 files changed, 205 insertions(+), 97 deletions(-)
diff --git config_180726_0202/Texts/en-US/events.txt config_180731_0046/Texts/en-US/events.txt
index fee787e..420cc2e 100644
--- config_180726_0202/Texts/en-US/events.txt
+++ config_180731_0046/Texts/en-US/events.txt
@@ -175,10 +175,16 @@ news_vivid_vulture:
   description: 'Private beta begins! We have loads of polish and bugfixes, all new pilot portraits, and some lovely new emotes are available.
 
     '
   header_image: EventHeader_Updates
   title: 'News: Vivid Vulture Vaxillum'
+news_woodpecker_wings:
+  description: 'Read all about the latest changes we’ve been working on. More optimization, lots of bugfixes and some new content coming soon.
+
+    '
+  header_image: EventHeader_Updates
+  title: 'News: Whiffling Woodpecker Wings'
 playtest_event:
   description: "Welcome to the latest Steambirds playtest. Be kind to one another. Explore the game. Have fun. Good skies! \n\n<b><size=18><color=ffffffff>Schedule</color></size></b>\n {0}{1}\n"
   ending_server_message: The playtest is over!
   header_image: EventHeader_Updates
   starting_server_message: Playtest is starting now!
diff --git config_180726_0202/Texts/en-US/lore.txt config_180731_0046/Texts/en-US/lore.txt
index fc5c7ac..8882892 100644
--- config_180726_0202/Texts/en-US/lore.txt
+++ config_180731_0046/Texts/en-US/lore.txt
@@ -447,15 +447,10 @@ newtutorialwalkergroundsign8: 'Salvage items from downed enemies
 
   to upgrade your plane.'
 newtutorialwalkergroundsign9: '<color=#FF9900><size=100%>Final Training Drone
 
   Ahead!</size>'
-nexus_lore_test: 'Did you know that
-
-  Archaeocateryx love
-
-  to eat cats?'
 obstacledungeonsign1: '<font=LSTKClaBol SDF><size=150%>LASER PLAYGROUND
 
   <font=Candara SDF><size=100%>Cat nobility only!'
 obstacledungeonsign2:
   randomOptions:
@@ -982,10 +977,13 @@ thiefdungeonsign5: 'Memo for personnel:
 tutorial_autoequip: You can enable auto-equip of superior items in the options menu. <color=#FF9900>[<action:40>]</color>
 tutorial_chat: Press <color=#FF9900>[<action:14>]</color> to open chat.
 tutorial_coop: 'Steambirds is coop!
 
   No friendly fire.'
+tutorial_crafter_hint: '<font=LSTKClaBol SDF><size=200%>The Workshop
+
+  <font=Candara SDF><size=100%>Go here to craft stuff'
 tutorial_danger: 'Enemies with <sprite="textIconAtlas" name="catSkull"> are deadly
 
   at your level. Be careful!'
 tutorial_dungeon: 'Intel received!
 
diff --git config_180726_0202/Texts/en-US/store.txt config_180731_0046/Texts/en-US/store.txt
index aba425e..b0f1882 100644
--- config_180726_0202/Texts/en-US/store.txt
+++ config_180731_0046/Texts/en-US/store.txt
@@ -3,11 +3,11 @@ buy_confirm_info: Do you want to buy {0} for {1}?
 buy_confirm_info_not_buyable: Sorry. You can not buy this product.
 buy_confirm_info_not_buyable_limit_exceeded: Sorry. You can not buy this product. You own it already.
 buy_confirm_info_not_buyable_no_inventory: Sorry. You can not buy this product. You don't have enough inventory space.
 buy_confirm_info_too_less: You can not afford {0} for {1}. Want to get some extra?
 buy_confirm_title: Are you sure?
-buy_confirm_title_error: Sorry. The product is unvailable.
+buy_confirm_title_error: Sorry. The product is unavailable.
 buy_currency_button_desc: Get more gold.
 buy_currency_button_title: Buy currency
 buy_currency_failed: Your payment process failed.
 buy_currency_ok: Your payment was successful.
 buy_currency_ok_notification: '{0} {1}'
@@ -58,28 +58,29 @@ product_name_hangar_slot: Hangar Slot
 product_name_store_bundle_keys1: Mission Bundle
 product_name_store_bundle_starter: Beginner Bundle
 product_name_store_storage_slot: Additional Storage
 product_popup_action: <color=#FBB040><action:43></color>   Purchase
 product_popup_already_own: ''
-product_popup_limit_exceeded: 'Unvailable: Maximum quantity already owned.'
+product_popup_limit_exceeded: 'Unavailable: Maximum quantity already owned.'
 product_popup_max_per_account: 'Maximum quantity per account: {0}'
-product_popup_no_inventory: 'Unvailable: You don''t have enough inventory space.'
-product_popup_not_buyable: Unvailable.
+product_popup_no_inventory: 'Unavailable: You don''t have enough inventory space.'
+product_popup_not_buyable: Unavailable.
 product_popup_off: '<color=#E5C46B>{0}% off</color> the normal price of {1}.
 
 
   '
+product_popup_previewing: <color=#E5C46B>Previewing:</color>
 product_popup_price_change: '
 
   Because this is your {0} you get a special discount.
 
   '
 purchase_error_limit_exceeded: Your purchase failed. You own it already.
 purchase_error_no_currency: Your purchase failed. You can not afford it. Want to get some extra?
 purchase_error_no_inventory_space: Your purchase failed. You don't have enough inventory space.
-purchase_error_payment_failed: Your purchase failed. If this happens again please contact the support.
-purchase_error_unknown: Your purchase failed. If this happens again please contact the support.
+purchase_error_payment_failed: Your purchase failed. If this happens again please contact support.
+purchase_error_unknown: Your purchase failed. If this happens again please contact support.
 purchase_ok: 'You purchased: {0}.'
 section_name_general_account: Upgrades and Boosts
 section_name_general_dye: Paint Shop
 section_name_general_emotes: Emotes
 section_name_general_variant: Plane Variants
diff --git config_180726_0202/Texts/en-US/ui.txt config_180731_0046/Texts/en-US/ui.txt
index b4ed269..3ca0399 100644
--- config_180726_0202/Texts/en-US/ui.txt
+++ config_180731_0046/Texts/en-US/ui.txt
@@ -353,10 +353,11 @@ menu_back: Back
 menu_close: Close
 menu_continue: Continue
 menu_purchase: Purchase
 menu_select: Select
 menu_toggle: Toggle
+menu_try_on: Try On
 mission_complete_bossesleft: '{0} bosses left in the nation.'
 mission_complete_enemy: Defeated {0}
 modal_cancel: Cancel
 modal_ok: OK
 no_quick_heal_item_in_inventory: Quick heal failed. You don't have any heal item in your inventory.
@@ -526,22 +527,25 @@ player_label: ' <color={1}>L{0}</color>'
 player_label_admin: ' <color={1}>L{0} A</color>'
 quest_active_heading: '{0} <size=65%>{1}/{2}</size>'
 quest_active_heading_other: '{0}'
 quest_active_inactive: ''
 quest_goal_collect: Collect {0} <color=#FBB040>{1}</color>
+quest_goal_collect_crafting: '{0} <color=#FBB040>{1}</color>'
 quest_goal_collect_dungeon: Collect {0} <color=#FBB040>{1}</color> in <color=#FBB040>{2}</color>
 quest_goal_collect_unit: Collect {0} <color=#FBB040>{1}</color> from <color=#FBB040>{2}</color>
 quest_goal_collect_unit_dungeon: Collect {0} <color=#FBB040>{1}</color> from <color=#FBB040>{2}</color> in <color=#FBB040>{3}</color>
 quest_goal_encounter: Find {0} <color=#FBB040>{1}</color>
 quest_goal_encounter_dungeon: Find {0} <color=#FBB040>{1}</color> in <color=#FBB040>{2}</color>
 quest_goal_kill: Kill {0} <color=#FBB040>{1}</color>
 quest_goal_kill_dungeon: Kill {0} <color=#FBB040>{1}</color> in <color=#FBB040>{2}</color>
 quest_goal_pilot: Reach <color=#FBB040>pilot L{0}</color>
 quest_goal_plane: Reach <color=#FBB040>plane L{0}</color>
 quest_goal_plane_class: Reach <color=#FBB040>plane L{0}</color> with <color=#FBB040>{1}</color>
 quest_goal_progress: '{0}/{1}'
 quest_goal_return: Return to <color=#FBB040>{0}</color> once tasks complete.
+quest_goal_return_crafting: Craft at <color=#FBB040>{0}</color>.
+quest_goal_return_crafting_location: Craft at <color=#FBB040>{0}</color> in <color=#FBB040>{1}</color>.
 quest_goal_return_location: Return to <color=#FBB040>{0}</color> in <color=#FBB040>{1}</color> once tasks complete.
 quest_goal_return_nexus_help: <color=#FBB040>[<action:5>]</color> Return to Rebel City
 quest_goal_target: '{0}'
 quest_instant_pilotxp: Pilot XP
 quest_instant_planexp: XP
@@ -561,10 +565,11 @@ quest_log_normal_title: Mission Log
 quest_popup_action_accept: <color=#FBB040>[<action:43>]</color> Accept {type}
 quest_popup_action_active: <color=#FBB040>[<action:43>]</color> Make active {type}
 quest_popup_action_handin_items: <color=#FBB040>[<action:43>]</color> Hand in items
 quest_popup_action_incomplete: Complete the tasks above
 quest_popup_action_return: <color=#FBB040>[<action:43>]</color> Claim reward
+quest_popup_rewards_crafting_title: 'Crafts into:'
 quest_popup_rewards_loading: Loading...
 quest_popup_rewards_title: 'Rewards:'
 quest_popup_status_accepted: '{type} Accepted'
 quest_popup_status_completed: COMPLETED
 quest_reward_prob_hidden: '%'
@@ -589,10 +594,13 @@ quest_type_normal: Mission
 questnotify_cancelled: '{0} Cancelled'
 questnotify_completed: '{0} Completed'
 questnotify_completed_rewards: '
 
   <size=20>Rewards:'
+questnotify_completed_rewards_crafting: '
+
+  <size=20>Crafted:'
 questnotify_completed_rewards_end: </size>
 questnotify_failed: '{0} Failed'
 questnotify_new: New {0} Acquired
 quick_chat_greeting: Good Skies!
 quick_chat_help: Help!
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbosscloud.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbosscloud.txt
index 3acf0f0..a4bfebf 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbosscloud.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbosscloud.txt	
@@ -1,6 +1,6 @@
-art: '!EnemySmoke'
+art: EnemyThunderbossSmokePrefab
 artScale: '2'
 colliderRadius: '0.5'
 colliderX: '0'
 colliderY: '0'
 elementSusceptibilityIds:
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbosslightningwall.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbosslightningwall.txt
index 2b76dcd..32a80c3 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbosslightningwall.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbosslightningwall.txt	
@@ -1,6 +1,6 @@
-art: EnemyUltraPouncer
+art: EnemyThunderMinion
 artScale: '1'
 bankSmoothing: '10000'
 colliderRadius: '0.5'
 colliderX: '0'
 colliderY: '0'
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb.txt
index 25b68dd..ef65d57 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb.txt	
@@ -1,6 +1,6 @@
-art: '!EnemyCloudleader'
+art: ThunderbossOrbPrefab
 artScale: '1'
 colliderRadius: '0.7'
 colliderX: '0'
 colliderY: '0'
 effectImmunities:
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb2.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb2.txt
index 4b911b2..6e06f4b 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb2.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb2.txt	
@@ -1,6 +1,6 @@
-art: '!EnemyCloudleader'
+art: ThunderbossOrbPrefab
 artScale: '1'
 colliderRadius: '0.7'
 colliderX: '0'
 colliderY: '0'
 effectImmunities:
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb3.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb3.txt
index 6808f88..c7a330a 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossorb3.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossorb3.txt	
@@ -1,6 +1,6 @@
-art: '!EnemyCloudleader'
+art: ThunderbossOrbPrefab
 artScale: '1'
 colliderRadius: '0.7'
 colliderX: '0'
 colliderY: '0'
 effectImmunities:
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossshieldblade.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossshieldblade.txt
index a8c0af1..52276c6 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS1_thunderbossshieldblade.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS1_thunderbossshieldblade.txt	
@@ -1,6 +1,6 @@
-art: EnemyHomingBomb_Prefab
+art: EnemyThunderbossGrid
 artScale: '0.8'
 colliderRadius: '0.5'
 colliderX: '0'
 colliderY: '0'
 elementSusceptibilityIds:
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderbeam.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderbeam.txt
index 5dbf29b..4277c12 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderbeam.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderbeam.txt	
@@ -1,7 +1,7 @@
-art: EnemyUltraPouncer
-artScale: '1'
+art: EnemyThunderMinion
+artScale: '2'
 colliderRadius: '0.5'
 colliderX: '0'
 colliderY: '0'
 elementSusceptibilityIds:
 - slowWeakness
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderboss.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderboss.txt
index 4e815ef..ad03c6e 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderboss.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderboss.txt	
@@ -1,6 +1,6 @@
-art: EnemyThunderboss
+art: EnemyThunderbossPrefab
 artScale: '1.0'
 bankSmoothing: '10000'
 cameraZoomMultiplier: '1.3'
 cameraZoomRadius: '40'
 colliderRadius: '1.4'
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderminion.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderminion.txt
index b37dac6..6764c5a 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderminion.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderminion.txt	
@@ -1,7 +1,7 @@
 art: EnemyThunderMinion
-artScale: '1'
+artScale: '1.7'
 colliderRadius: '0.3'
 colliderX: '0'
 colliderY: '0'
 elementSusceptibilityIds:
 - slowWeakness
diff --git config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderminion2.txt config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderminion2.txt
index 16826c9..6491cd2 100644
--- config_180726_0202/Units/54 - Lightning Boss Event/BOS_thunderminion2.txt	
+++ config_180731_0046/Units/54 - Lightning Boss Event/BOS_thunderminion2.txt	
@@ -1,7 +1,7 @@
-art: EnemyUltraPouncer
-artScale: '1'
+art: EnemyThunderMinion
+artScale: '1.7'
 colliderRadius: '0.3'
 colliderX: '0'
 colliderY: '0'
 elementSusceptibilityIds:
 - slowWeakness
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/BOS1_turbinekingDEATH.txt config_180731_0046/Units/64D - Obstacle Dungeon/BOS1_turbinekingDEATH.txt
index 65e4728..dfb5955 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/BOS1_turbinekingDEATH.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/BOS1_turbinekingDEATH.txt	
@@ -1,6 +1,6 @@
-art: EnemyTurbineKingPrefab
+art: EnemyTurbineKingPrefab_Death
 artScale: '1'
 cameraZoomMultiplier: '1.3'
 cameraZoomRadius: '24.00'
 colliderRadius: '2.7'
 colliderX: '0'
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/BOS2_wavemaster.txt config_180731_0046/Units/64D - Obstacle Dungeon/BOS2_wavemaster.txt
index 5b60e00..8fb0762 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/BOS2_wavemaster.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/BOS2_wavemaster.txt	
@@ -50,8 +50,27 @@ healthRegenRate: '0'
 maxEnergyPoints: '1'
 maxHitPoints: '270'
 maxSpeed: '0'
 maxTurnRate: '360'
 minSpeed: '0'
+particlePositions:
+- name: darkSmoke
+  pos:
+  - '-0.31'
+  - '0.56'
+  - '-1.38'
+  rot:
+  - '0'
+  - '0'
+  - '-90'
+- name: darkSmoke
+  pos:
+  - '0.53'
+  - '-0.372'
+  - '-1.38'
+  rot:
+  - '0'
+  - '0'
+  - '-90'
 spawnInvulnerabilitySeconds: '0'
 templateName: wavemaster
 tier: '3'
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/SLO_fathunter.txt config_180731_0046/Units/64D - Obstacle Dungeon/SLO_fathunter.txt
index 3bb8c57..e418f95 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/SLO_fathunter.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/SLO_fathunter.txt	
@@ -25,8 +25,18 @@ healthRegenRate: '0'
 maxEnergyPoints: '1'
 maxHitPoints: '40'
 maxSpeed: '3.5'
 maxTurnRate: '40'
 minSpeed: '1.5'
+particlePositions:
+- name: darkSmoke
+  pos:
+  - '-0.002'
+  - '-1.09'
+  - '-0.34'
+  rot:
+  - '0'
+  - '0'
+  - '0'
 spawnInvulnerabilitySeconds: '2'
 templateName: fathunter
 tier: '3'
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/SLO_fathuntermini.txt config_180731_0046/Units/64D - Obstacle Dungeon/SLO_fathuntermini.txt
index 57df03b..f6375d8 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/SLO_fathuntermini.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/SLO_fathuntermini.txt	
@@ -28,9 +28,19 @@ healthRegenRate: '0'
 maxEnergyPoints: '1'
 maxHitPoints: '35'
 maxSpeed: '3.5'
 maxTurnRate: '40'
 minSpeed: '1.5'
+particlePositions:
+- name: darkSmoke
+  pos:
+  - '0'
+  - '-0.573'
+  - '-0.03'
+  rot:
+  - '0'
+  - '0'
+  - '-90'
 spawnInvulnerabilitySeconds: '0'
 templateName: fathuntermini
 tier: '3'
 xpMultiplier: '0'
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/SLO_shockwaver.txt config_180731_0046/Units/64D - Obstacle Dungeon/SLO_shockwaver.txt
index ea1bbec..51e80a5 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/SLO_shockwaver.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/SLO_shockwaver.txt	
@@ -27,8 +27,18 @@ healthRegenRate: '0'
 maxEnergyPoints: '1'
 maxHitPoints: '50'
 maxSpeed: '1.5'
 maxTurnRate: '40'
 minSpeed: '0'
+particlePositions:
+- name: darkSmoke
+  pos:
+  - '0'
+  - '-0.49'
+  - '-0.87'
+  rot:
+  - '0'
+  - '0'
+  - '-90'
 spawnInvulnerabilitySeconds: '2'
 templateName: shockwaver
 tier: '3'
diff --git config_180726_0202/Units/64D - Obstacle Dungeon/unit_buzzard.txt config_180731_0046/Units/64D - Obstacle Dungeon/unit_buzzard.txt
index 908c6eb..7a09171 100644
--- config_180726_0202/Units/64D - Obstacle Dungeon/unit_buzzard.txt	
+++ config_180731_0046/Units/64D - Obstacle Dungeon/unit_buzzard.txt	
@@ -49,8 +49,18 @@ healthRegenRate: '0'
 maxEnergyPoints: '1'
 maxHitPoints: '20'
 maxSpeed: '3'
 maxTurnRate: '360'
 minSpeed: '3'
+particlePositions:
+- name: darkSmoke
+  pos:
+  - '-0.365'
+  - '-0.36'
+  - '-0.344'
+  rot:
+  - '0'
+  - '0'
+  - '-90'
 spawnInvulnerabilitySeconds: '0'
 templateName: buzzard
 tier: '3'
diff --git config_180726_0202/global.txt config_180731_0046/global.txt
index 62d51ef..b781644 100644
--- config_180726_0202/global.txt
+++ config_180731_0046/global.txt
@@ -31,10 +31,12 @@ autoGunFireThreshold: '0.3'
 backend: ozy
 backendErrorPercentage: '0'
 backendMonkeyDelayMaxMs: '500'
 backendMonkeyDelayMinMs: '10'
 baseNumHangarSlots: '2'
+baseNumInventorySlots: '8'
+baseNumStorageSlots: '8'
 bulletMultipleSpacing: '0.5'
 checkLinkTimeout: '5'
 clientFPS: '60'
 clientNetworkHeartbeatIntervalMs: '6'
 clientOutboundCap: '2000'
diff --git config_180726_0202/news.txt config_180731_0046/news.txt
index 4f3c474..114f422 100644
--- config_180726_0202/news.txt
+++ config_180731_0046/news.txt
@@ -27,8 +27,12 @@ news_umbrellabird_uropygiums:
   Url: https://community.steambirds.com/blog/327
 news_vivid_vulture:
   IsVisibleToClient: 'true'
   Time: 2018-07-18 02:00
   Url: https://community.steambirds.com/blog/328
+news_woodpecker_wings:
+  IsVisibleToClient: 'true'
+  Time: 2018-07-26 04:00
+  Url: https://community.steambirds.com/blog/329
 test_news:
   IsVisibleToClient: 'false'
   Time: 2018-05-31 00:00
diff --git config_180726_0202/questGivers.txt config_180731_0046/questGivers.txt
index 3fcd039..a2edd12 100644
--- config_180726_0202/questGivers.txt
+++ config_180731_0046/questGivers.txt
@@ -253,12 +253,10 @@
   - crafter
   - portal_Nexus
   id: crafter
   location: nexus
   permanentQuests:
-  - id: test_crafting
-  - id: craft_laser_fire
   - id: fusion_laser_lightning_9
   - id: fusion_laser_lightning_10
   - id: fusion_laser_water_9
   - id: fusion_laser_water_10
   - id: fusion_laser_fire_9
@@ -385,5 +383,6 @@
   - id: fusion_wasp_double_10
   - id: fusion_strike_tesla_9
   - id: fusion_strike_tesla_10
   - id: fusion_sword_double_9
   - id: fusion_sword_double_10
+  sortAcquiredAboveOther: 'true'
diff --git config_180726_0202/quick_chat.txt config_180731_0046/quick_chat.txt
index 94de73f..41c0a12 100644
--- config_180726_0202/quick_chat.txt
+++ config_180731_0046/quick_chat.txt
@@ -34,33 +34,40 @@ D:
   isInUILayer: 'false'
   leakyBucketInterval: '3'
   leakyBucketMax: '3'
   text_key: quick_chat_whee
   text_key_empty: quick_chat_whee
+FireworksEpic:
+  isInUILayer: 'false'
+  prefabName: QuickChat_FireworksEpic
+  unlock_item_id: emote_fireworks_epic
 LoveCommon:
   isInUILayer: 'false'
   prefabName: QuickChat_LoveCommon
   unlock_item_id: emote_love_common
 LoveEpic:
   isInUILayer: 'false'
   prefabName: QuickChat_LoveEpic
   unlock_item_id: emote_love_epic
 LoveFireworks:
+  hidden: 'true'
   isInUILayer: 'false'
   prefabName: QuickChat_Love
   unlock_item_id: emote_love_fireworks
 None:
   analytics_id: '0'
   hidden: 'true'
   leakyBucketInterval: '2'
   leakyBucketMax: '10'
 PurpleFireworks:
+  hidden: 'true'
   isInUILayer: 'false'
   prefabName: QuickChat_Test
   unlock_item_id: emote_purple_fireworks
 RRR:
   duration: '3'
+  hidden: 'true'
   isInUILayer: 'true'
   prefabName: QuickChat_RRR
   unlock_item_id: emote_rrr
 ThumbsDown:
   hidden: 'false'
diff --git config_180726_0202/store.txt config_180731_0046/store.txt
index ce6001d..7c5ceee 100644
--- config_180726_0202/store.txt
+++ config_180731_0046/store.txt
@@ -1440,10 +1440,21 @@ products:
   items:
   - consumable_xpboost
   tags:
   - item_consumable
 - account_items:
+  - inventory_slot
+  icon: ItemUnknown
+  id: inventory_slot
+  normal_price:
+    amount: '10000'
+    amount_sub_item_tag: inventory_slot
+    currency: gold
+  preRelease: 'true'
+  tags:
+  - inventory_slot
+- account_items:
   - hangar_slot
   icon: ItemHangerSlot
   id: hangar_slot
   normal_price:
     amount: '10000'
@@ -1929,10 +1940,46 @@ products:
   tags:
   - unlocks
   - emotes_epic
   unlocks:
   - emote_love_epic
+- additional_price_tags:
+  - id: normal
+    price:
+      amount: '7000'
+      currency: gold
+  - id: scrap
+    price:
+      amount: '21000'
+      currency: scrap
+  icon: ItemEmote
+  id: unlock_emote_fireworks_epic
+  max_per_account: '1'
+  max_per_account_count_unlocks: 'true'
+  preRelease: 'false'
+  preview_camera_direction:
+  - '0'
+  - '1'
+  - '0'
+  preview_camera_offset:
+  - '0'
+  - '0'
+  - '-1'
+  preview_clipping_area: '20'
+  preview_distance: '6'
+  preview_prefab_name: QuickChat_FireworksEpic
+  preview_prefab_pool: UI
+  preview_reenable_timeout: '3'
+  preview_target_offset:
+  - '0'
+  - '0'
+  - '-1'
+  tags:
+  - unlocks
+  - emotes_epic
+  unlocks:
+  - emote_fireworks_epic
 stores:
 - id: store_hangar
   sections:
   - id: general_banner
     max_product_count: '1'
@@ -1962,13 +2009,16 @@ stores:
     id: general_sales
     max_product_count: '4'
     type: SPECIAL
   - icon: ItemBoost
     id: general_account
-    max_product_count: '4'
+    max_product_count: '8'
     product_selection:
       with_tags_any:
+      - hangar_slot
+      - storage_slot
+      - inventory_slot
       - item_consumable
     type: NORMAL
   - icon: ItemEmote
     id: general_emotes
     max_product_count: '32'
diff --git config_180726_0202/territories.txt config_180731_0046/territories.txt
index 23541ec..6d20342 100644
--- config_180726_0202/territories.txt
+++ config_180731_0046/territories.txt
@@ -629,26 +629,10 @@
 - clientMapInfo:
     clientEvents:
     - condition:
         code: And
         subconditions:
-        - code: PlayerNearPos
-          value0: '-20'
-          value1: '-8'
-          value2: '5'
-      once_key: nexus_lore_test
-      reactions:
-      - parameter: nexus_lore_test
-        reaction: chat
-      - parameter: nexus_lore_test
-        parameterF0: '1'
-        parameterF1: '1'
-        reaction: lore_text_higher
-      trigger: repeatEvery_2
-    - condition:
-        code: And
-        subconditions:
         - code: NotOnceKeySet
           name: tavern_spawned
         - code: MaxPlayerPilotLevel
           value0: '10'
         - code: PlayerPlaneNearby
@@ -718,10 +702,29 @@
         parameterF1: '-3'
         parameterF2: '-2'
         reaction: lore_text_relative_pos
         rotation: '0'
       trigger: storage
+    - condition:
+        code: And
+        subconditions:
+        - code: NotOnceKeySet
+          name: crafter_spawned
+        - code: MaxPlayerPilotLevel
+          value0: '10'
+        - code: PlayerPlaneNearby
+          value0: '10'
+      once_key: crafter_spawned
+      reactions:
+      - asset: LoreTextClientArrow
+        parameter: tutorial_crafter_hint
+        parameterF0: '4'
+        parameterF1: '-3'
+        parameterF2: '-2'
+        reaction: lore_text_relative_pos
+        rotation: '0'
+      trigger: crafter
   distancePerElevation: '0.15'
   localChatDistance: '0'
   maxAllowedOverlapOnSubterritory: '0.9'
   maxDiskRadius: '20'
   minDiskRadius: '7'
diff --git config_180726_0202/territoryTiles.txt config_180731_0046/territoryTiles.txt
index 33a5b7e..84a6775 100644
--- config_180726_0202/territoryTiles.txt
+++ config_180731_0046/territoryTiles.txt
@@ -1412,59 +1412,69 @@ mountains3:
   LUTname: mountains3
   basedOn: mountains
   miniRadarColor: 130c2e
 nexus:
   ID: '37'
-  ambientColor: 826d53
+  ambientColor: '524939'
   ambientFX:
     position:
     - '0'
     - '0'
     - '15'
     prefab: NexusFlyovers
-  backLeftColor: C4CDE6FF
+  backLeftColor: daa58a
   backLeftIntensity: '0.5'
   backLeftRotation:
   - '-149.5'
   - '-86'
   - '0'
-  backRightColor: CAD0B1FF
-  backRightIntensity: '0.6'
+  backRightColor: abb8de
+  backRightIntensity: '0.3'
   backRightRotation:
   - '-149.5'
   - '80.4'
   - '0'
   basedOn: default
+  cliffTag: _none_
   cloudHeight: '1'
   cloudProbability: '0.8'
-  fogBottom: '13'
-  fogColor: 3B322B
+  cloudStartColor:
+    colorMax: ddbfb759
+    colorMin: e5ccc759
+    mode: TwoColors
+  fogBottom: '15'
+  fogColor: 9a9b81
   fogExp: '0'
-  fogNoiseAmount: '0.5'
-  fogNoiseScale: '3'
-  fogTop: '-10'
+  fogNoiseAmount: '0.1'
+  fogNoiseScale: '4'
+  fogTop: '1'
   groundBaseHeight: '30'
-  groundFloorHeight: '1'
+  groundFloorHeight: '0.5'
   groundScatterProbability: '0'
   groundScatterRotation:
   - '0'
   - '0'
   groundScatterScale:
   - '1'
   - '1'
-  groundTag: canyonfloor
+  groundTag: _none_
   keyColor: b4965f
   keyIntensity: '0.9'
   keyRotation:
   - '-24.8'
   - '5.4'
   - '0'
+  lowerCloudStartColor:
+    colorMax: ddbfb732
+    colorMin: e5ccc732
+    mode: TwoColors
   miniRadarColor: 4e413d
-  wallBaseHeight: '18'
+  scatterTag: _none_
+  wallBaseHeight: '16'
   wallHeightRandomness: '0'
   wallRotationRandomness: '0'
-  wallTag: Invisible
+  wallTag: nexus
 notraboss:
   ID: '55'
   ambientColor: 81988FFF
   basedOn: default
   cliffTag: mountains
@@ -1476,51 +1486,12 @@ notraboss:
   miniRadarColor: 4d1a16
   scatterTag: notraboss
   wallTag: dungeonmilitary
 overworld:
   ID: '38'
-  backLeftColor: E1E1E1FF
-  backLeftIntensity: '1'
-  backLeftRotation:
-  - '-149.5'
-  - '-86'
-  - '0'
-  backRightColor: E1E1E1FF
-  backRightIntensity: '1'
-  backRightRotation:
-  - '-149.5'
-  - '80.4'
-  - '0'
-  basedOn: default
-  cloudHeight: '6'
-  cloudHeightVariation: '2'
-  cloudProbability: '1'
-  fogBottom: '16'
-  fogColor: 726F6CFF
-  fogExp: '0'
-  fogNoiseAmount: '1'
-  fogNoiseScale: '3'
-  fogTop: '-4'
-  groundScatterProbability: '0.5'
-  groundScatterRotation:
-  - '-180'
-  - '180'
-  groundScatterScale:
-  - '0.7'
-  - '1.3'
-  keyColor: 887045FF
-  keyIntensity: '0.9'
-  keyRotation:
-  - '-24.8'
-  - '5.4'
-  - '0'
-  lowerCloudHeight: '10'
-  lowerCloudHeightVariation: '5'
-  lowerCloudProbability: '0.5'
+  basedOn: nexus
   miniRadarColor: '00000000'
-  scatterTag: overworld
-  wallTag: Invisible
 pharaohboss:
   ID: '51'
   basedOn: default
   cliffTag: midlands2
   closeCanyonGroup: _any_
@@ -1597,11 +1568,11 @@ sprinklesboss:
   groundScatterProbability: '0.8'
   groundTag: sprinklesboss
   keyColor: E59340FF
   miniRadarColor: 4d1a16
   scatterTag: sprinklesboss
-  wallTag: sprinklesboss
+  wallTag: dungeonfactory
 tankboss:
   ID: '46'
   basedOn: default
   cliffTag: tankboss
   closeCanyonGroup: _any_