diff --git a/src/training/mod.rs b/src/training/mod.rs
index 2aad151..701f451 100644
--- a/src/training/mod.rs
+++ b/src/training/mod.rs
@@ -3,6 +3,7 @@ use crate::hitbox_visualizer;
 use skyline::nn::ro::LookupSymbol;
 use smash::app::{self, lua_bind::*};
 use smash::lib::lua_const::*;
+use smash::params::*;
 
 pub mod combo;
 pub mod directional_influence;
@@ -294,7 +295,8 @@ pub unsafe fn handle_set_dead_rumble(lua_state: u64) -> u64 {
     original!()(lua_state)
 }
 
-pub static mut COMMON_OBJ: u64 = 0;
+pub static mut COMMON_PARAMS: *mut CommonParams = 0 as *mut _;
+
 // 8.1.0 Offset
 static mut LOAD_PRC_FILE_OFFSET: usize = 0x34369d0;
 
@@ -311,7 +313,7 @@ unsafe fn load_once_common_params(common_obj: u64, table1_idx: u32) {
     let hash = loaded_tables.get_hash_from_t1_index(table1_idx).as_u64();
 
     if hash == smash::phx::Hash40::new("fighter/common/param/common.prc").hash {
-        COMMON_OBJ = common_obj;
+        COMMON_PARAMS = CommonParams::from_u64_mut(common_obj).unwrap() as *mut _;
     }
     original!()(common_obj, table1_idx)
 }
diff --git a/src/training/shield.rs b/src/training/shield.rs
index 689d8d3..189bcc3 100644
--- a/src/training/shield.rs
+++ b/src/training/shield.rs
@@ -130,15 +130,14 @@ pub unsafe fn get_param_float(
 }
 
 pub unsafe fn param_installer() {
-    if crate::training::COMMON_OBJ != 0 {
+    if crate::training::COMMON_PARAMS as usize != 0 {
+        let common_params = &mut *crate::training::COMMON_PARAMS;
         if is_training_mode()
             && (MENU.shield_state == Shield::Infinite || should_pause_shield_decay())
         {
-            // Set "shield_damage_mul" to 0.0f
-            *((crate::training::COMMON_OBJ + 0x16c) as *mut f32) = 0x0 as f32;
+            common_params.shield_damage_mul = 0.0;
         } else {
-            // Set "shield_damage_mul" to 1.19f
-            *((crate::training::COMMON_OBJ + 0x16c) as *mut f32) = 1.19 as f32;
+            common_params.shield_damage_mul = 1.19;
         }
     }
 }