diff --git a/src/yuzu/multiplayer/direct_connect.cpp b/src/yuzu/multiplayer/direct_connect.cpp
index d71cc23a72e647e3050cb9e7f75bd29d93ee65e4..a415a953f6a4cb312bb4b151765388f5da6e2d9d 100644
--- a/src/yuzu/multiplayer/direct_connect.cpp
+++ b/src/yuzu/multiplayer/direct_connect.cpp
@@ -34,13 +34,14 @@ DirectConnectWindow::DirectConnectWindow(Core::System& system_, QWidget* parent)
     connect(watcher, &QFutureWatcher<void>::finished, this, &DirectConnectWindow::OnConnection);
 
     ui->nickname->setValidator(validation.GetNickname());
-    ui->nickname->setText(UISettings::values.multiplayer_nickname.GetValue());
+    ui->nickname->setText(
+        QString::fromStdString(UISettings::values.multiplayer_nickname.GetValue()));
     if (ui->nickname->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
         // Use yuzu Web Service user name as nickname by default
         ui->nickname->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
     }
     ui->ip->setValidator(validation.GetIP());
-    ui->ip->setText(UISettings::values.multiplayer_ip.GetValue());
+    ui->ip->setText(QString::fromStdString(UISettings::values.multiplayer_ip.GetValue()));
     ui->port->setValidator(validation.GetPort());
     ui->port->setText(QString::number(UISettings::values.multiplayer_port.GetValue()));
 
@@ -91,8 +92,8 @@ void DirectConnectWindow::Connect() {
     }
 
     // Store settings
-    UISettings::values.multiplayer_nickname = ui->nickname->text();
-    UISettings::values.multiplayer_ip = ui->ip->text();
+    UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString();
+    UISettings::values.multiplayer_ip = ui->ip->text().toStdString();
     if (ui->port->isModified() && !ui->port->text().isEmpty()) {
         UISettings::values.multiplayer_port = ui->port->text().toInt();
     } else {
diff --git a/src/yuzu/multiplayer/host_room.cpp b/src/yuzu/multiplayer/host_room.cpp
index a8faa5b248ba3ff1f9a178ac9c4a5c4ac50cbd4a..ef364ee43a8646284f2f7e37eab5ed3c4e97719b 100644
--- a/src/yuzu/multiplayer/host_room.cpp
+++ b/src/yuzu/multiplayer/host_room.cpp
@@ -55,12 +55,14 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
     connect(ui->host, &QPushButton::clicked, this, &HostRoomWindow::Host);
 
     // Restore the settings:
-    ui->username->setText(UISettings::values.multiplayer_room_nickname.GetValue());
+    ui->username->setText(
+        QString::fromStdString(UISettings::values.multiplayer_room_nickname.GetValue()));
     if (ui->username->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
         // Use yuzu Web Service user name as nickname by default
         ui->username->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
     }
-    ui->room_name->setText(UISettings::values.multiplayer_room_name.GetValue());
+    ui->room_name->setText(
+        QString::fromStdString(UISettings::values.multiplayer_room_name.GetValue()));
     ui->port->setText(QString::number(UISettings::values.multiplayer_room_port.GetValue()));
     ui->max_player->setValue(UISettings::values.multiplayer_max_player.GetValue());
     int index = UISettings::values.multiplayer_host_type.GetValue();
@@ -72,7 +74,8 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
     if (index != -1) {
         ui->game_list->setCurrentIndex(index);
     }
-    ui->room_description->setText(UISettings::values.multiplayer_room_description.GetValue());
+    ui->room_description->setText(
+        QString::fromStdString(UISettings::values.multiplayer_room_description.GetValue()));
 }
 
 HostRoomWindow::~HostRoomWindow() = default;
@@ -218,8 +221,8 @@ void HostRoomWindow::Host() {
                      Network::NoPreferredIP, password, token);
 
         // Store settings
-        UISettings::values.multiplayer_room_nickname = ui->username->text();
-        UISettings::values.multiplayer_room_name = ui->room_name->text();
+        UISettings::values.multiplayer_room_nickname = ui->username->text().toStdString();
+        UISettings::values.multiplayer_room_name = ui->room_name->text().toStdString();
         UISettings::values.multiplayer_game_id =
             ui->game_list->currentData(GameListItemPath::ProgramIdRole).toLongLong();
         UISettings::values.multiplayer_max_player = ui->max_player->value();
@@ -230,7 +233,8 @@ void HostRoomWindow::Host() {
         } else {
             UISettings::values.multiplayer_room_port = Network::DefaultRoomPort;
         }
-        UISettings::values.multiplayer_room_description = ui->room_description->toPlainText();
+        UISettings::values.multiplayer_room_description =
+            ui->room_description->toPlainText().toStdString();
         ui->host->setEnabled(true);
         emit SaveConfig();
         close();
diff --git a/src/yuzu/multiplayer/lobby.cpp b/src/yuzu/multiplayer/lobby.cpp
index 387f6f7c914e630925385a48b091adf7aacf4e61..603e9ae3dedc9379343a0d8aec066586b2423526 100644
--- a/src/yuzu/multiplayer/lobby.cpp
+++ b/src/yuzu/multiplayer/lobby.cpp
@@ -60,7 +60,8 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
     ui->room_list->setContextMenuPolicy(Qt::CustomContextMenu);
 
     ui->nickname->setValidator(validation.GetNickname());
-    ui->nickname->setText(UISettings::values.multiplayer_nickname.GetValue());
+    ui->nickname->setText(
+        QString::fromStdString(UISettings::values.multiplayer_nickname.GetValue()));
 
     // Try find the best nickname by default
     if (ui->nickname->text().isEmpty() || ui->nickname->text() == QStringLiteral("yuzu")) {
@@ -202,9 +203,9 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
     // TODO(jroweboy): disable widgets and display a connecting while we wait
 
     // Save settings
-    UISettings::values.multiplayer_nickname = ui->nickname->text();
+    UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString();
     UISettings::values.multiplayer_ip =
-        proxy->data(connection_index, LobbyItemHost::HostIPRole).toString();
+        proxy->data(connection_index, LobbyItemHost::HostIPRole).value<QString>().toStdString();
     UISettings::values.multiplayer_port =
         proxy->data(connection_index, LobbyItemHost::HostPortRole).toInt();
     emit SaveConfig();
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index 20a517d34a46a0b5a90ad07692d7dc94d65cd7c7..0be8ee36980460a75ecef9172df22bb3a965baec 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -14,6 +14,8 @@
 #include "common/common_types.h"
 #include "common/settings.h"
 
+using Settings::Setting;
+
 namespace UISettings {
 
 bool IsDarkTheme();
@@ -64,30 +66,33 @@ struct Values {
     QByteArray gamelist_header_state;
 
     QByteArray microprofile_geometry;
-    Settings::Setting<bool> microprofile_visible{false, "microProfileDialogVisible"};
-
-    Settings::Setting<bool> single_window_mode{true, "singleWindowMode"};
-    Settings::Setting<bool> fullscreen{false, "fullscreen"};
-    Settings::Setting<bool> display_titlebar{true, "displayTitleBars"};
-    Settings::Setting<bool> show_filter_bar{true, "showFilterBar"};
-    Settings::Setting<bool> show_status_bar{true, "showStatusBar"};
-
-    Settings::Setting<bool> confirm_before_closing{true, "confirmClose"};
-    Settings::Setting<bool> first_start{true, "firstStart"};
-    Settings::Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"};
-    Settings::Setting<bool> mute_when_in_background{false, "muteWhenInBackground"};
-    Settings::Setting<bool> hide_mouse{true, "hideInactiveMouse"};
-    Settings::Setting<bool> controller_applet_disabled{false, "disableControllerApplet"};
-
+    Setting<bool> microprofile_visible{false, "microProfileDialogVisible"};
+
+    Setting<bool> single_window_mode{true, "singleWindowMode"};
+    Setting<bool> fullscreen{false, "fullscreen"};
+    Setting<bool> display_titlebar{true, "displayTitleBars"};
+    Setting<bool> show_filter_bar{true, "showFilterBar"};
+    Setting<bool> show_status_bar{true, "showStatusBar"};
+
+    Setting<bool> confirm_before_closing{true, "confirmClose"};
+    Setting<bool> first_start{true, "firstStart"};
+    Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"};
+    Setting<bool> mute_when_in_background{false, "muteWhenInBackground"};
+    Setting<bool> hide_mouse{true, "hideInactiveMouse"};
+    Setting<bool> controller_applet_disabled{false, "disableControllerApplet"};
     // Set when Vulkan is known to crash the application
     bool has_broken_vulkan = false;
 
-    Settings::Setting<bool> select_user_on_boot{false, "select_user_on_boot"};
+    Setting<bool> select_user_on_boot{false, "select_user_on_boot"};
+    Setting<bool> disable_web_applet{true, "disable_web_applet"};
 
     // Discord RPC
-    Settings::Setting<bool> enable_discord_presence{true, "enable_discord_presence"};
+    Setting<bool> enable_discord_presence{true, "enable_discord_presence"};
 
-    Settings::Setting<bool> enable_screenshot_save_as{true, "enable_screenshot_save_as"};
+    // logging
+    Setting<bool> show_console{false, "showConsole"};
+
+    Setting<bool> enable_screenshot_save_as{true, "enable_screenshot_save_as"};
 
     QString roms_path;
     QString symbols_path;
@@ -102,47 +107,42 @@ struct Values {
     // Shortcut name <Shortcut, context>
     std::vector<Shortcut> shortcuts;
 
-    Settings::Setting<uint32_t> callout_flags{0, "calloutFlags"};
+    Setting<u32> callout_flags{0, "calloutFlags"};
 
     // multiplayer settings
-    Settings::Setting<QString> multiplayer_nickname{{}, "nickname"};
-    Settings::Setting<QString> multiplayer_ip{{}, "ip"};
-    Settings::SwitchableSetting<uint, true> multiplayer_port{24872, 0, UINT16_MAX, "port"};
-    Settings::Setting<QString> multiplayer_room_nickname{{}, "room_nickname"};
-    Settings::Setting<QString> multiplayer_room_name{{}, "room_name"};
-    Settings::SwitchableSetting<uint, true> multiplayer_max_player{8, 0, 8, "max_player"};
-    Settings::SwitchableSetting<uint, true> multiplayer_room_port{24872, 0, UINT16_MAX,
-                                                                  "room_port"};
-    Settings::SwitchableSetting<uint, true> multiplayer_host_type{0, 0, 1, "host_type"};
-    Settings::Setting<qulonglong> multiplayer_game_id{{}, "game_id"};
-    Settings::Setting<QString> multiplayer_room_description{{}, "room_description"};
+    Setting<std::string> multiplayer_nickname{{}, "nickname"};
+    Setting<std::string> multiplayer_ip{{}, "ip"};
+    Setting<u16, true> multiplayer_port{24872, 0, UINT16_MAX, "port"};
+    Setting<std::string> multiplayer_room_nickname{{}, "room_nickname"};
+    Setting<std::string> multiplayer_room_name{{}, "room_name"};
+    Setting<u8, true> multiplayer_max_player{8, 0, 8, "max_player"};
+    Setting<u16, true> multiplayer_room_port{24872, 0, UINT16_MAX, "room_port"};
+    Setting<u8, true> multiplayer_host_type{0, 0, 1, "host_type"};
+    Setting<unsigned long long> multiplayer_game_id{{}, "game_id"};
+    Setting<std::string> multiplayer_room_description{{}, "room_description"};
     std::pair<std::vector<std::string>, std::vector<std::string>> multiplayer_ban_list;
 
-    // logging
-    Settings::Setting<bool> show_console{false, "showConsole"};
-
     // Game List
-    Settings::Setting<bool> show_add_ons{true, "show_add_ons"};
-    Settings::Setting<uint32_t> game_icon_size{64, "game_icon_size"};
-    Settings::Setting<uint32_t> folder_icon_size{48, "folder_icon_size"};
-    Settings::Setting<uint8_t> row_1_text_id{3, "row_1_text_id"};
-    Settings::Setting<uint8_t> row_2_text_id{2, "row_2_text_id"};
+    Setting<bool> show_add_ons{true, "show_add_ons"};
+    Setting<u32> game_icon_size{64, "game_icon_size"};
+    Setting<u32> folder_icon_size{48, "folder_icon_size"};
+    Setting<u8> row_1_text_id{3, "row_1_text_id"};
+    Setting<u8> row_2_text_id{2, "row_2_text_id"};
     std::atomic_bool is_game_list_reload_pending{false};
-    Settings::Setting<bool> cache_game_list{true, "cache_game_list"};
-    Settings::Setting<bool> favorites_expanded{true, "favorites_expanded"};
+    Setting<bool> cache_game_list{true, "cache_game_list"};
+    Setting<bool> favorites_expanded{true, "favorites_expanded"};
     QVector<u64> favorited_ids;
 
     // Compatibility List
-    Settings::Setting<bool> show_compat{false, "show_compat"};
+    Setting<bool> show_compat{false, "show_compat"};
 
     // Size & File Types Column
-    Settings::Setting<bool> show_size{true, "show_size"};
-    Settings::Setting<bool> show_types{true, "show_types"};
+    Setting<bool> show_size{true, "show_size"};
+    Setting<bool> show_types{true, "show_types"};
 
     bool configuration_applied;
     bool reset_to_defaults;
     bool shortcut_already_warned{false};
-    Settings::Setting<bool> disable_web_applet{true, "disable_web_applet"};
 };
 
 extern Values values;