diff --git a/server/src/cmd.rs b/server/src/cmd.rs
index 872f6bec35..1f46109481 100644
--- a/server/src/cmd.rs
+++ b/server/src/cmd.rs
@@ -1079,6 +1079,11 @@ fn handle_level(server: &mut Server, entity: EcsEntity, args: String, action: &C
             Ok(player) => {
                 if let Some(stats) = ecs.write_storage::<comp::Stats>().get_mut(player) {
                     stats.level.set_level(lvl);
+
+                    stats.update_max_hp();
+                    stats
+                        .health
+                        .set_to(stats.health.maximum(), comp::HealthSource::LevelUp);
                 } else {
                     error_msg = Some(ServerMsg::private(String::from("Player has no stats!")));
                 }