diff --git a/game/engines/default/engine/Target.lua b/game/engines/default/engine/Target.lua
index 92da5ba70eb1615a3d8db93d27f7b1300957463b..56a5076ef33e37a5432ad06f1c64b7a6eb4b9fa3 100644
--- a/game/engines/default/engine/Target.lua
+++ b/game/engines/default/engine/Target.lua
@@ -152,12 +152,14 @@ function _M:freemove(dir)
 	self.target.x = self.target.x + d[1]
 	self.target.y = self.target.y + d[2]
 	self.target.entity = game.level.map(self.target.x, self.target.y, engine.Map.ACTOR)
+	if self.on_set_target then self:on_set_target() end
 end
 
 function _M:setSpot(x, y)
 	self.target.x = x
 	self.target.y = y
 	self.target.entity = game.level.map(self.target.x, self.target.y, engine.Map.ACTOR)
+	if self.on_set_target then self:on_set_target() end
 end
 
 function _M:scan(dir, radius, sx, sy, filter)
@@ -194,6 +196,7 @@ function _M:scan(dir, radius, sx, sy, filter)
 		self.target.entity = actors[1].a
 		self.target.x = self.target.entity.x
 		self.target.y = self.target.entity.y
+		if self.on_set_target then self:on_set_target() end
 	end
 end
 
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 11d3b753836188e6feba507c704d23796696a4fc..695e5635d6db098af19203f1f58767eeb1574b65 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -109,7 +109,7 @@ function _M:run()
 	self.hotkeys_display.actor = self.player
 	self.npcs_display.actor = self.player
 
-	engine.interface.GameTargeting.init(self)
+	self:initTargeting()
 
 	-- Ok everything is good to go, activate the game in the engine!
 	self:setCurrent()
@@ -235,7 +235,7 @@ function _M:setupDisplayMode()
 	end
 	if self.level then
 		self.level.map:recreate()
-		engine.interface.GameTargeting.init(self)
+		self:initTargeting()
 		self.level.map:moveViewSurround(self.player.x, self.player.y, 8, 8)
 	end
 	self:setupMiniMap()
@@ -247,6 +247,14 @@ function _M:setupDisplayMode()
 	if self.player then self.player:updateMainShader() end
 end
 
+function _M:initTargeting()
+	engine.interface.GameTargeting.init(self)
+	self.target.on_set_target = function(self)
+		if game.key == game.targetmode_key then game.level.map:moveViewSurround(self.target.x, self.target.y, 8, 8) end
+	end
+end
+
+
 function _M:setupMiniMap()
 	if self.level and self.level.map then self.level.map._map:setupMiniMapGridSize(4) end
 end
@@ -754,6 +762,8 @@ function _M:setupCommands()
 				"resume",
 				"achievements",
 				{ "Show known Lore", function() game:unregisterDialog(menu) game:registerDialog(require("mod.dialogs.ShowLore").new("Tales of Middle-earth Lore", self.player)) end },
+				{ "Inventory", function() game:unregisterDialog(menu) self.key:triggerVirtual("SHOW_INVENTORY") end },
+				{ "Character Sheet", function() game:unregisterDialog(menu) self.key:triggerVirtual("SHOW_CHARACTER_SHEET") end },
 				"keybinds",
 				{"Graphic Mode", function() game:unregisterDialog(menu) game:registerDialog(require("mod.dialogs.GraphicMode").new()) end},
 				"resolution",